我想通过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)
?
答案 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))