2017-07-14 2 views
2

大規模なR行列があり、すべてのデータを1つの列で並べ替えるが、その列を奇妙な方法で並べ替える必要がある(昇順でも降順でもない)。大規模なR行列をベクトルで列で並べ替える

X = C(3,4,5,6,1,2)

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行列をソートする必要があります。ここでの例であります私は、他の列のデータを正しい順序で保持したいので、私はorder関数を使う必要があることを知っています。

+0

「大」でどのように大規模な? – Roland

答えて

4

ない私が正しく質問を得た場合必ず、しかし、あなたは試してみてください:

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" 
+1

優秀な回答! – Prradep

関連する問題