R语言 Dplyr包创建一个排名变量
在这篇文章中,我们将讨论如何用R中的Dplyr包创建一个排名变量。
安装
要安装这个包,请在终端键入以下命令。
install.packages("dplyr")
mutate方法可以用来将数据重新排列成不同的方向,通过执行各种聚合和统计方法,并将其分配给数据框的新列名。
语法
mutate(new-col-name = function(col-name))
desc()方法可以用来将数据按降序排列。它是R中可用的内置聚合方法。然而,与列前的-号一起,用于以升序分配排名变量。
语法
desc(col-name)
可以应用dense_rank方法来返回一个窗口分区内的行的等级,没有任何空隙。它把数据框架的列名作为参数。 具有相同值的变量被赋予相同的等级,无论它在数据框架的列中出现多少次。
例1 :
library(data.table)
library(dplyr)
# creating first data frame
data_frame < - data.table(col1=rep(c(5: 7), each=2),
col2=c(1, 4, 3, 4, 1, 6),
col3=1
)
print("Original DataFrame")
print(data_frame)
# ranking variable in data frame
print("Modified DataFrame")
# ranking by column 2
data_frame % > % mutate(rank=dense_rank(desc(-col2)))
输出
[1] "Original DataFrame"
col1 col2 col3
1: 5 1 1
2: 5 4 1
3: 6 3 1
4: 6 4 1
5: 7 1 1
6: 7 6 1
[1] "Modified DataFrame"
col1 col2 col3 rank
1: 5 1 1 1
2: 5 4 1 3
3: 6 3 1 2
4: 6 4 1 3
5: 7 1 1 1
6: 7 6 1 4
例2: 按降序分配等级
列名变量rank也可以在数据框中不加减号地排列,这样就可以按降序分配等级。
library(data.table)
library(dplyr)
# creating first data frame
data_frame < - data.table(col1=rep(c(5: 7), each=2),
col2=c(1, 4, 3, 4, 1, 6),
col3=1
)
print("Original DataFrame")
print(data_frame)
# ranking variable in data frame
print("Modified DataFrame")
data_frame % > % mutate(rank=dense_rank(desc(col2)))
输出
[1] "Original DataFrame"
col1 col2 col3
1: 5 1 1
2: 5 4 1
3: 6 3 1
4: 6 4 1
5: 7 1 1
6: 7 6 1
[1] "Modified DataFrame"
col1 col2 col3 rank
1: 5 1 1 4
2: 5 4 1 2
3: 6 3 1 3
4: 6 4 1 2
5: 7 1 1 4
6: 7 6 1 1