对矩阵的行进行排序,使得结果矩阵中的col.names保持在R中

时间:2015-04-16 15:25:50

标签: r sorting matrix

假设我有一个矩阵,其中一行X = 2 5 7 3作为元素。这些元素隐含地具有列名V1-V4。我想对这些元素进行排序,一旦排序,它们也必须携带它们的列名,即V1-V4。在这个例子中,一旦排序,我将需要一个矩阵,它已经将元素排序为Y = 2 3 5 7是第二行,第一行是V1 V4 V2 V3。感谢。

1 个答案:

答案 0 :(得分:1)

使用维度索引时,列名称将随列数据自然移动:

m <- matrix(c(V1=2,5,7,3),1,4,dimnames=list(NULL,c('V1','V2','V3','V4')));
m;
##      V1 V2 V3 V4
## [1,]  2  5  7  3
m <- m[,order(m[1,]),drop=F];
m;
##      V1 V4 V2 V3
## [1,]  2  3  5  7