如何在 R 数据框的每一行中创建一个包含最大值列名的列?
要创建一个包含每一行最大值的列名的列,我们可以按照以下步骤操作:
首先,创建一个数据框。
然后,使用 dplyr 包的 mutate 函数以及 max.col 函数来创建一个包含 R 数据框每一行最大值的列名的列。
示例
创建数据框
让我们创建一个如下所示的数据框:
x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) df<-data.frame(x,y,z) df
输出
执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
x y z 1 9 17 21 2 20 43 27 3 50 33 30 4 25 8 18 5 44 5 20 6 34 41 42 7 23 15 12 8 2 23 35 9 43 27 5 10 29 12 47 11 42 19 15 12 15 28 32 13 13 36 39 14 10 50 14 15 19 11 45 16 5 24 37 17 48 2 11 18 36 25 10 19 31 10 48 20 38 49 36 21 11 46 4 22 41 1 44 23 7 26 46 24 22 34 9 25 16 45 3
创建包含每一行最大值的列名的列
使用 dplyr 包的 mutate 函数以及 max.col 函数来创建包含数据框 df 每一行最大值的列名的列:
x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) df<-data.frame(x,y,z) library(dplyr) df %>% mutate(Class=names(.)[max.col(.)])
输出
x y z Class 1 9 17 21 z 2 20 43 27 y 3 50 33 30 x 4 25 8 18 x 5 44 5 20 x 6 34 41 42 z 7 23 15 12 x 8 2 23 35 z 9 43 27 5 x 10 29 12 47 z 11 42 19 15 x 12 15 28 32 z 13 13 36 39 z 14 10 50 14 y 15 19 11 45 z 16 5 24 37 z 17 48 2 11 x 18 36 25 10 x 19 31 10 48 z 20 38 49 36 y 21 11 46 4 y 22 41 1 44 z 23 7 26 46 z 24 22 34 9 y 25 16 45 3 y
广告