如果某些列在 R 数据框中是分类的,如何找到每个数字列的最大值的位置?

如果某些列在 R 数据框中是分类的,要找到每个数字列的最大值的位置,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,如果某些列是分类列,则使用 plyr 包中的 numcolwise 函数查找每个数字列的最大值。

示例 1

创建数据框

让我们创建一个数据框,如下所示 -

Level<-sample(c("low","medium","high"),25,replace=TRUE)

Group<-sample(c("first","second"),25,replace=TRUE)

DV1<-rpois(25,5)

DV2<-rpois(25,10)

df1<-data.frame(Level,Group,DV1,DV2)

df1

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

   Level  Group  DV1 DV2

1  low    first  8    7

2  low    first  6   11

3  high   first  2   14

4  medium second 3   11

5  low    second 4   10

6  medium second 7    7

7  high   second 4   15

8  low    second 3    8

9  high   second 5    6

10 medium second 3   13

11 medium second 1   13

12 low    first  3   10

13 high   first  6   10

14 high   first  5   14

15 medium first 10   11

16 low    first  6   7

17 medium second 7   10

18 high   second 5   11

19 medium second 4   11

20 low    first  5   13

21 medium first  2    9

22 medium first  6   12

23 low    second 5    8

24 low    second 6   10

25 low    second 2    6

如果某些列是分类列,则查找每列的最大值

如果某些列在数据框 df1 中是分类列,则使用 plyr 包中的 numcolwise 函数查找每个数值列的最大值 -

Level<-sample(c("low","medium","high"),25,replace=TRUE)

Group<-sample(c("first","second"),25,replace=TRUE)

DV1<-rpois(25,5)

DV2<-rpois(25,10)

df1<-data.frame(Level,Group,DV1,DV2)

library(plyr)

numcolwise(which.max)(df1)

输出结果
  DV1 DV2

1 24  15

示例 2

创建数据框

让我们创建一个数据框,如下所示 -

factor1<-sample(c("Super","Lower","Medium"),25,replace=TRUE)

factor2<-sample(c("I","II","III"),25,replace=TRUE)

v1<-rnorm(25)

v2<-rnorm(25)

df2<-data.frame(factor1,factor2,v1,v2)

df2

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

   factor1  factor2   v1           v2

1  Lower      II   -0.88708231   0.30097842

2  Super      I    -1.15358512  -0.50595244

3  Lower      II   -0.07962128  -0.74934137

4  Super      I    -1.48634012   0.19566058

5  Lower     III    1.14577383  -1.09185066

6  Super     II     0.88951251  -0.02418110

7  Lower     III    0.13711621  -1.02686656

8  Super      I     0.27011965   1.26320650

9  Medium    III    0.16775174  -1.92041942

10 Medium    III   -0.15766279   1.26627694

11 Medium     I   -1.23267080   -0.93831033

12 Medium    II    0.38065869   2.09701663

13 Medium     I   -1.45391083  -0.08486117

14 Lower     III   0.80940837  -1.06338634

15 Medium     II   0.20411080  -0.29534513

16 Lower     III   0.59453629   2.64966638

17 Medium     III  0.31227512   1.68916757

18 Lower      I    2.89731076   0.96783335

19 Super     III  -0.06000641   0.58903660

20 Lower     III   0.92520811  -1.03121594

21 Medium    III   1.85323653  -1.33632487

22 Medium     II   1.13713484  -1.27496569

23 Super      I    0.52744948   0.28164512

24 Lower      I    0.17266053   0.57324301

25 Lower     II    2.67321967  -1.80427360

如果某些列是分类列,则查找每列的最大值

如果某些列在数据框 df2 中属于分类列,则使用 plyr 包中的 numcolwise 函数查找每个数值列的最大值 -

factor1<-sample(c("Super","Lower","Medium"),25,replace=TRUE)

factor2<-sample(c("I","II","III"),25,replace=TRUE)

v1<-rnorm(25)

v2<-rnorm(25)

df2<-data.frame(factor1,factor2,v1,v2)

library(plyr)

numcolwise(which.max)(df2)

输出结果
  v1 v2

1 18 16

以上是 如果某些列在 R 数据框中是分类的,如何找到每个数字列的最大值的位置? 的全部内容, 来源链接: utcz.com/z/343730.html

回到顶部