R语言 Dplyr包创建一个排名变量

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程