我有一个数据框
Id A B C D E F
a 1 2 9 4 7 6
b 4 5 1 3 6 10
c 1 6 0 3 4 5
Run Code Online (Sandbox Code Playgroud)
我想要一个数据框
Id
a C E F D B A #for a, C has the highest value, then E then F and so on...similarly for other rows
b F E B A D C
c B F E D A C
Run Code Online (Sandbox Code Playgroud)
基本上,我首先对数据帧的每一行进行排序,然后用各自的列名替换行值.
有什么好办法吗?
使用order带apply,提取names的过程中,像这样的:
data.frame(
mydf[1],
t(apply(mydf[-1], 1, function(x)
names(x)[order(x, decreasing = TRUE)])))
# Id X1 X2 X3 X4 X5 X6
# 1 a C E F D B A
# 2 b F E B A D C
# 3 c B F E D A C
Run Code Online (Sandbox Code Playgroud)
结果apply被需要t之前,它与重组ransposed 标识列.
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |