按行对数据进行排序

3

I have a data frame like

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

我希望得到一个类似于数据框的结构

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

基本上,我首先对数据框的每一行进行排序,然后用相应的列名替换行值。
有没有更好的方法来做到这一点?
1个回答

5
使用applyorder函数结合,同时提取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
< p > 在重新与Id列合并之前,需要对apply的结果进行transpose。 < /p >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接