行列の行にブールR演算子ORを使用したいと思います。以下では、apply関数を使用した単純なおもちゃの例に対する私の解を見つける。これを行う最も簡単で最速の方法は何ですか?これは他のブール演算にどのように一般化されますか?あなたはこのためにany
(論理的「または」)とall
(論理「と」)関数を使用することができブール演算子または行列の行のOR
b <- matrix(c(T,T,F,T,F,F),3)
apply(b,1, function(x) T %in% x)
行列の行にブールR演算子ORを使用したいと思います。以下では、apply関数を使用した単純なおもちゃの例に対する私の解を見つける。これを行う最も簡単で最速の方法は何ですか?これは他のブール演算にどのように一般化されますか?あなたはこのためにany
(論理的「または」)とall
(論理「と」)関数を使用することができブール演算子または行列の行のOR
b <- matrix(c(T,T,F,T,F,F),3)
apply(b,1, function(x) T %in% x)
。あなたのケースでは:余談として
apply(b, 1, any)
、私はコードでT
とF
の使用を避けるだろう。彼らは、コードの別の場所で再定義することができ、通常の識別子です。一方、TRUE
およびFALSE
は定数ではありません。
私は 'rowSums'もこの文脈でかなり頻繁に使われていると思います。 – Henrik
私たちは、この
rowSums(b)!=0
#[1] TRUE TRUE FALSE
のためのベクトル化rowSums
を使用するか、または2つの列のみが存在する場合、|
オペレータはまた
b[,1]|b[,2]
#[1] TRUE TRUE FALSE
を使用することができ、ご希望の出力は何ですか? – r2evans
あなたは何をしようとしているのですか?データフレームと通常のサブセットワークフローを使用していないのはなぜですか? – cory