如何在R数据框中找到组的百分等级?
百分位一词是指低于或高于百分位值的百分比。例如,如果我们有一个位于第50个百分位数的值,则可以说有50%的值低于或高于该值。此处的值50称为百分等级。要找到R数据帧中组的百分数等级,我们可以使用dplyr包的mutate函数。
示例
考虑以下数据帧-
Group<-sample(LETTERS[1:4],20,replace=TRUE)Response<-rpois(20,5)
df1<-data.frame(Group,Response)df1
输出结果
Group Response1 D 5
2 B 7
3 D 5
4 C 4
5 D 5
6 C 5
7 A 10
8 D 3
9 B 2
10 D 0
11 B 4
12 D 5
13 A 3
14 A 6
15 D 2
16 A 7
17 A 6
18 C 2
19 A 9
20 C 3
示例
加载dplyr软件包-
library(dplyr)
查找组的响应百分等级-
示例
df1%>%group_by(Group)%>%mutate(Percentile_Rank=rank(Response)/length(Response))# A tibble: 20 x 3
# Groups: Group [4]
输出结果
Group Response Percentile_Rank<chr> <int> <dbl>
1 D 5 0.786
2 B 7 1
3 D 5 0.786
4 C 4 0.75
5 D 5 0.786
6 C 5 1
7 A 10 1
8 D 3 0.429
9 B 2 0.333
10 D 0 0.143
11 B 4 0.667
12 D 5 0.786
13 A 3 0.167
14 A 6 0.417
15 D 2 0.286
16 A 7 0.667
17 A 6 0.417
18 C 2 0.25
19 A 9 0.833
20 C 3 0.5
示例
Class<-sample(c("I","II","III"),20,replace=TRUE)Y<-rnorm(20,25,3.27)
df2<-data.frame(Class,Y)df2
输出结果
Class Y1 III 32.88152
2 III 23.35048
3 III 19.78199
4 III 26.05137
5 I 26.16563
6 III 20.30466
7 I 22.93382
8 II 30.03620
9 I 16.89365
10 I 27.33329
11 I 27.46550
12 III 27.59028
13 II 27.40766
14 III 23.29442
15 II 28.69237
16 II 31.25723
17 II 22.58002
18 III 22.48583
19 I 26.08357
20 III 24.51681
查找类别的响应百分等级-
示例
df2%>%group_by(Class)%>%mutate(Percentile_Rank=rank(Y)/length(Y))# A tibble: 20 x 3
# Groups: Class [3]
输出结果
Class Y Percentile_Rank<chr> <dbl> <dbl>
1 III 32.9 1
2 III 23.4 0.556
3 III 19.8 0.111
4 III 26.1 0.778
5 I 26.2 0.667
6 III 20.3 0.222
7 I 22.9 0.333
8 II 30.0 0.8
9 I 16.9 0.167
10 I 27.3 0.833
11 I 27.5 1
12 III 27.6 0.889
13 II 27.4 0.4
14 III 23.3 0.444
15 II 28.7 0.6
16 II 31.3 1
17 II 22.6 0.2
18 III 22.5 0.333
19 I 26.1 0.5
20 III 24.5 0.667
以上是 如何在R数据框中找到组的百分等级? 的全部内容, 来源链接: utcz.com/z/345262.html