如何在 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(this output will vary on your system due to randomization)-

    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

以上是 如何在 R 数据框的每一行中为最大值创建一个列名? 的全部内容, 来源链接: utcz.com/z/331653.html

回到顶部