我不明白为什么我不能使用订单功能基于矢量订购矩阵
我有以下内容:
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
为什么你们认为这种情况正在发生?我该如何解决?
答案 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