如何在基础 R 的数据框架中添加一个秩列?


变量的排名有很多目标,例如根据层次结构定义顺序,但在数据科学中,我们主要使用它来分析非参数数据。R 数据框架中变量的排名可以通过使用 rank 函数来完成。例如,如果我们有一个包含 x 列的数据框架 df,则 x 中值的秩可以被发现为 rank(df$x)。

示例

 现场演示

Consider the below data frame:
x1<-sample(c("A","B","C"),20,replace=TRUE)
y1<-rpois(20,2)
df1<-data.frame(x1,y1)
df1

输出

  x1 y1
1  A 4
2  A 0
3  A 2
4  B 1
5  A 0
6  C 6
7  A 4
8  C 0
9  C 4
10 B 1
11 A 2
12 B 2
13 B 2
14 B 3
15 C 0
16 B 1
17 C 3
18 C 4
19 C 2
20 C 2

创建一列包含 y1 中值的秩−

示例

df1$Rank<-rank(df1$y1)
df1

输出

   x1 y1 Rank
1  A 4 17.5
2  A 0 2.5
3  A 2 10.5
4  B 1 6.0
5  A 0 2.5
6  C 6 20.0
7  A 4 17.5
8  C 0 2.5
9  C 4 17.5
10 B 1 6.0
11 A 2 10.5
12 B 2 10.5
13 B 2 10.5
14 B 3 14.5
15 C 0 2.5
16 B 1 6.0
17 C 3 14.5
18 C 4 17.5
19 C 2 10.5
20 C 2 10.5

示例

 现场演示

x2<-sample(c("F1","F2","F3","F4"),20,replace=TRUE)
y2<-sample(0:9,20,replace=TRUE)
df2<-data.frame(x2,y2)
df2

输出

  x2 y2
1  F1 3
2  F1 4
3  F3 3
4  F4 1
5  F4 2
6  F2 9
7  F4 5
8  F1 1
9  F2 8
10 F2 1
11 F2 3
12 F4 0
13 F1 7
14 F4 5
15 F3 3
16 F2 9
17 F4 6
18 F4 6
19 F4 9
20 F2 9

创建一列包含 y2 中值的秩−

示例

df2$Rank<-rank(df2$y2)
df2

输出

   x2 y2 Rank
1  F1 3 7.5
2  F1 4 10.0
3  F3 3 7.5
4  F4 1 3.0
5  F4 2 5.0
6  F2 9 18.5
7  F4 5 11.5
8  F1 1 3.0
9  F2 8 16.0
10 F2 1 3.0
11 F2 3 7.5
12 F4 0 1.0
13 F1 7 15.0
14 F4 5 11.5
15 F3 3 7.5
16 F2 9 18.5
17 F4 6 13.5
18 F4 6 13.5
19 F4 9 18.5
20 F2 9 18.5

更新于: 05-12-2020

7K+ 浏览

开启您的 职业

完成课程获得认证

开始学习
广告宣传