按降序对数据框中的每一行进行排名

时间:2015-01-22 18:29:13

标签: r dataframe rank

我想通过rank()apply(data.frame,1,rank)应用于数据框中的每一行。但是,排名默认为升序。因此,当我使用值(2,1,3,5)将rank()应用于我的第一行时,我得到了

[1] 2 1 3 4

但是,我想要

[1] 3 4 2 1

如何使用apply(data.frame,1,rank)

执行此操作

1 个答案:

答案 0 :(得分:3)

尝试

apply(-data, 1, rank, ties.method='first')

并与

进行比较
apply(data, 1, rank, ties.method='first')

针对您的具体示例

v1 <- c(2,1,3,5)
rank(v1)
#[1] 2 1 3 4
rank(-v1)
#[1] 3 4 2 1

数据

 set.seed(24)
 data <- as.data.frame(matrix(sample(1:20, 4*20, replace=TRUE), ncol=4))