如果某些列在 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(thisoutputwillvaryonyoursystemduetorandomization)-
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(thisoutputwillvaryonyoursystemduetorandomization)-
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