我有一个很大的R矩阵,我想按一列对所有数据进行排序,但是该列需要以一种奇怪的方式进行排序(即,不能升序或降序)。这是一个例子:
test=matrix(data=c("A","B","C","D","E","E","F","F","F",1,2,2,3,4,5,6,6,6),ncol=2)
> test
[,1] [,2]
[1,] "A" "1"
[2,] "B" "2"
[3,] "C" "2"
[4,] "D" "3"
[5,] "E" "4"
[6,] "E" "5"
[7,] "F" "6"
[8,] "F" "6"
[9,] "F" "6"
现在,我需要使用向量按第2列对矩阵进行排序:
x = c(3,4,5,6,1,2)
我知道我需要使用order函数,因为我也想使其他列中的数据也保持正确的顺序。
不知道我是否正确回答了问题,但是您可以尝试:
test[order(match(test[,2],x)),]
# [,1] [,2]
# [1,] "D" "3"
# [2,] "E" "4"
# [3,] "E" "5"
# [4,] "F" "6"
# [5,] "F" "6"
# [6,] "F" "6"
# [7,] "A" "1"
# [8,] "B" "2"
# [9,] "C" "2"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句