如何在基础 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
广告宣传