2016-11-05 3 views
-1

R初心者ここでは、必要があります。Rでは、ベクトルに一致する行列の行を選択してください

 1 2 3 
1 1 0 0 
2 0 1 0 
3 0 0 1 
4 1 1 0 
5 1 0 1 
6 0 1 1 
7 1 1 1 

次に、私たちは特定のベクトルf.eを持っています。 (1、0、1)、行5と一致するでしょう。 ベクトルを与えられた行列からインデックス5を得る最良の方法は? 私はすでに質問を読んでいます。 R - fastest way to select the rows of a matrix that satisfy multiple conditionsIn R, select rows of a matrix that meet a condition ですが、この場合は状況が異なると思います。あなたの入力のためのThanx!

+0

こんにちはを使用することができます。なぜあなたの状況は異なると思いますか?私の意見では、あなたが投稿したリンクはあなたの問題に対する良い解決策です。しかし、多分私は何かを逃しています。明確にできますか?ありがとう。 – lrnzcig

+0

@Imzcigあなたは正しいと思いますが、私のベクトルと列の数がかなり多いので、よりエレガントな方法が必要であるという気持ちがあります。私の例が掲載されていれば、確かに良い解決策になるでしょう。 – brun0

答えて

1

which,apply、およびallの機能の組み合わせを提案できます。

m <- matrix(c(1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,1,1,1), 7, byrow=TRUE) 

which(apply(m, 1, function(x) return(all(x == c(1,0,1))))) 

[1] 5 
0

我々はrowSums

which(rowSums(m1 == rep(c(1,0,1), each = nrow(m1)))==3) 
#5 
#5 
関連する問題