データを再作成します。
a <- array(c(1,0,0,0,1,0,1,1,0,0,0,1,0,1,0), dim=c(5,3))
次に、条件に等しいベクトルを作成します。
cond <- c(1, 0, 0)
次に、へapply
の呼び出しでラップされたステートメントは、which
どの行が条件に一致するかを教えてくれます
which(apply(a, 1, function(x)all(x==cond)))
1] 1 5
最後に、この条件を満たす行を抽出するには:
x <- which(apply(a, 1, function(x)all(x==cond)))
a[x, ]
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
結果の配列には多くの情報が含まれていません。おそらく、条件に一致する行数を知りたいですか?
length(x)
[1] 2
後続の質問に答えるために。配列が大きい場合に条件ベクトルを作成する方法は?
さて、1つの方法は次のとおりです。幅が 100 列の配列があり、長さが 100 のベクトルが必要で、3 番目の要素を 1 にしたいとします。
cond <- rep(0, 100)
cond[3] <- 1
cond
[1] 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0