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