如果某些列在 R 数据框中是分类的,如何在列中找到每个值的排名?
如果某些列在 R 数据框中属于分类列,要查找列中每个值的排名,我们可以按照以下步骤操作 -
首先,创建一个数据框。
然后,如果某些列是分类的,则使用 plyr 包中的 numcolwise 函数来查找列中每个值的排名。
示例
创建数据框
让我们创建一个数据框,如下所示 -
Level<-sample(c("low","medium","high"),25,replace=TRUE)输出结果Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-rnorm(25)
DV2<-rnorm(25)
df<-data.frame(Level,Group,DV1,DV2)
df
执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-
Level Group DV1 DV21 medium first -0.15444635 0.44771691
2 low first 0.64594002 0.70918039
3 medium first 0.11612343 -0.46156286
4 medium second -2.07505385 -0.19145800
5 medium first 0.91928571 0.80887669
6 medium first 0.71592841 0.16538757
7 high second -1.45712679 0.40105329
8 high second -0.57098794 0.97701583
9 high second -0.55531986 0.52548578
10 medium first 0.21788069 -0.89447993
11 low second 0.13378146 -1.54879981
12 low first -1.25162532 0.21650691
13 low second 0.14558721 1.24260380
14 medium second 0.93689245 0.34528017
15 high second -1.25450836 0.34797171
16 low second -0.38612538 0.31359466
17 high first 2.70415465 0.73713265
18 high second -0.12480067 0.37259163
19 high second 0.78704330 -0.35841561
20 low first 0.81727351 -0.74304509
21 medium second 0.61382411 -0.40644606
22 low first 0.39757586 -2.33494132
23 high second -2.07106056 -0.90051548
24 high second -0.08953589 0.09631326
25 high second 0.65695959 -1.10357835
如果某些列是分类列,则查找列中每个值的排名
如果某些列在数据框 df 中是分类列,则使用 plyr 包中的 numcolwise 函数查找列中每个值的排名 -
Level<-sample(c("low","medium","high"),25,replace=TRUE)输出结果Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-rnorm(25)
DV2<-rnorm(25)
df<-data.frame(Level,Group,DV1,DV2)
library(plyr)
numcolwise(rank)(df)
DV1 DV21 11 15
2 5 3
3 15 5
4 23 23
5 8 17
6 4 11
7 17 10
8 16 21
9 7 24
10 6 14
11 14 1
12 10 9
13 19 19
14 22 12
15 9 16
16 20 2
17 18 22
18 21 18
19 13 7
20 2 25
21 1 20
22 24 6
23 3 13
24 12 8
25 25 4
以上是 如果某些列在 R 数据框中是分类的,如何在列中找到每个值的排名? 的全部内容, 来源链接: utcz.com/z/331656.html