正确排序矢量矩阵

时间:2014-12-22 00:12:35

标签: r matrix vector

我不明白为什么我不能使用订单功能基于矢量订购矩阵

我有以下内容:

m
     [,1] [,2]
[1,]    1    5
[2,]    2    5
[3,]    3    5
[4,]    4    5
[5,]    5    5
[6,]    6    5

v
[[1]]
[1] 3 1 2 4 5 6 

当我使用时:

m[order(unlist(v)),]

我得到以下错误排序的矩阵。

     [,1] [,2]
[1,]    2    5
[2,]    3    5
[3,]    1    5
[4,]    4    5
[5,]    5    5
[6,]    6    5

当我想要的订单是 v

中的内容时
     [,1] [,2]
[1,]    3    5
[2,]    1    5
[3,]    2    5
[4,]    4    5
[5,]    5    5
[6,]    6    5

为什么你们认为这种情况正在发生?我该如何解决?

1 个答案:

答案 0 :(得分:2)

而不是

m[order(unlist(v)),]

尝试

temp <- unlist(v)
m[ temp , ]

因为order按您希望的顺序返回索引。 E.g。

> x = c(3,1,2)
> order(x)
[1] 2 3 1
> x[order(x)]
[1] 1 2 3