Rank per row over multiple columns in R
我正在使用 R 来分析我的硕士论文。不幸的是,我遇到了这个问题:
我想计算一个新变量,它计算许多变量中每行一个变量的排名。
示例:
1 2 3 4 | V1 V2 V3 NewVariable_V1 NewVariable_V2 NewVariable_V3 11 21 35 3 2 1 22 12 66 2 3 1 44 22 12 1 2 3 |
您正在寻找排名。要获得降序,首先否定 data.frame.
1 2 3 4 5 | data.frame(d, t(apply(-d, 1, rank, ties.method='min'))) # V1 V2 V3 V1.1 V2.1 V3.1 # 1 11 21 35 3 2 1 # 2 22 12 66 2 3 1 # 3 44 22 12 1 2 3 |
1 2 3 4 5 6 7 8 | x <- cbind(a=c(11,22,44), b=c(21,12,22), c=c(35,66,12)) > x a b c [1,] 11 21 35 [2,] 22 12 66 [3,] 44 22 12 |
2018-10-22 编辑
现在,排名
行
1 2 3 4 5 | t(apply(-x, 1, rank)) a b c [1,] 3 2 1 [2,] 2 3 1 [3,] 1 2 3 |
或列
1 2 3 4 5 | apply(x, 2, rank) a b c [1,] 3 1 3 [2,] 2 2 1 [3,] 1 3 2 |