如何在 R 数据框的每一行中为最大值创建一个列名?
要在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输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
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