ベクトル(A、より大きな行列の列名)と行列(B)があります。
A = q、w、e、r、t
B =
q 1
y 2
w 3
e 4
u 5
t 6
r 7
A を B の最初の列と一致させます
マッチAB =
q 1
w 3
i 4
e 5
t 6
r 7
2列目だけが必要です。A と一緒に使用します。順序が同じでない場合。ここで、a = q、w、e、r、t。matchAB は、q、w、e、t、r になります。A でアルファベット順の並べ替えをしたくありません。matchAB を A と同じ順序にしたいのですが、何か助けはありますか?
ありがとう !
mnelの質問によると:
dput(a)
a =c("q", "w", "e", "r", "t")
dput(b)
b <- structure(c("q", "1", "y", "2", "w", "3", "i", "4", "e", "5",
"t", "6", "r", "7"), .Dim = c(2L, 7L), .Dimnames = list(c("bi","bb"), NULL))
ind=which(match(b[1,],a) != 0)
> b[,ind]=
[,1] [,2] [,3] [,4] [,5]
bi "q" "w" "e" "t" "r"
bb "1" "3" "5" "6" "7"
だから、私が望む出力は、
b[,ind]=
[,1] [,2] [,3] [,4] [,5]
bi "q" "w" "e" "r" "t"
bb "1" "3" "5" "7" "6"