如何对数据框的每一行的列进行排序,然后将列名保存在R的相应列中?

时间:2016-06-30 13:47:17

标签: r

我有一个数据框A.

A <- as.data.frame(matrix(c(2,3,1,8,6,7,5,9,4), nrow = 3, ncol = 3)) rownames(A)<-c('Row1','Row2','Row3') colnames(A)<-c('Col1','Col2','Col3')

A

             Col 1     Col 2     Col 3
Row 1            2         8         5
Row 2            3         6         9
Row 3            1         7         4

我想按降序对行的每一列进行排序,并将列名复制到相应的列中。

Row 1        Col 2     Col 3     Col 1
Row 2        Col 3     Col 2     Col 1
Row 3        Col 2     Col 3     Col 1

我使用此代码来实现此目的。

 sorted_users_vs_tags1<-t(apply(sorted_users_vs_tags1, 1, function(row) {
    names(row)<-colnames(sorted_users_vs_tags1)
    row[, order(row, decreasing = TRUE)]
    row<-names(row)})

但是我在应用函数的第二行中的尺寸长度出错。

1 个答案:

答案 0 :(得分:1)

使用此

matrix(colnames(A)[t(apply(A,1,order,decreasing=T))],ncol=3)