R - 如何在另一个变量中获得多个变量的顺序

时间:2015-10-01 19:02:03

标签: r

我在R中有一个包含多列数值的数据框。我想创建另一列显示这些列的顺序(如果它是升序或降序,则无关紧要)。一个粗略的例子:

     a b    c  new column
[1,] 1 3 10.0   c,b,a
[2,] 2 1  0.5   a,b,c
[3,] 3 4 11.0   c,b,a
[4,] 4 7  2.0   b,a,c
[5,] 5 8  0.1   b,a,c

似乎必须有某种功能,但我没有找到任何东西。我还需要某种逻辑来处理相同的关系/值。

1 个答案:

答案 0 :(得分:0)

我们可以使用apply使用MARGIN=1循环遍历数据集的行,根据行元素的orderpaste更改列名称顺序它在一起(toStringpaste(., collapse=", "))的包装。

d1$newColumn <- apply(d1, 1, function(x) toString(colnames(d1)[order(-x)]))

注意:在说明中,它被称为data.frame,但输入数据集看起来像matrix。如果数据集是matrix,请使用cbind添加其他列。但是,最好有一个data.frame因为类不一样。