我在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
似乎必须有某种功能,但我没有找到任何东西。我还需要某种逻辑来处理相同的关系/值。
答案 0 :(得分:0)
我们可以使用apply
使用MARGIN=1
循环遍历数据集的行,根据行元素的order
和paste
更改列名称顺序它在一起(toString
是paste(., collapse=", ")
)的包装。
d1$newColumn <- apply(d1, 1, function(x) toString(colnames(d1)[order(-x)]))
注意:在说明中,它被称为data.frame
,但输入数据集看起来像matrix
。如果数据集是matrix
,请使用cbind
添加其他列。但是,最好有一个data.frame
因为类不一样。