質問
logical OR
( |
) を使用した要素ごとの比較を使用して、リスト全体で論理ベクトルを効果的に組み合わせるにはどうすればよいですか。結果は、入力ベクトルと同じ長さの論理ベクトルになります。入力値のいずれかが の場合TRUE
、結果はTRUE
になります。それ以外の場合、結果は になりFALSE
ます。
例
同じ長さの論理ベクトルのセットを持つリスト opts があります。
> str(opts)
List of 5
$ option1: logi [1:608247] FALSE FALSE FALSE FALSE FALSE FALSE ...
$ option2: logi [1:608247] FALSE TRUE FALSE TRUE TRUE TRUE ...
$ option3: logi [1:608247] FALSE TRUE FALSE FALSE TRUE FALSE ...
$ option4: logi [1:608247] FALSE FALSE FALSE FALSE FALSE FALSE ...
結果としてこれが欲しい:
logi [1:608247] FALSE TRUE FALSE TRUE TRUE TRUE ...
したがって、結果の最初の値 は、がリストのすべてのベクトルの最初の位置にないFALSE
ためです。結果の 2 番目の値 は、ベクトルの 2 番目の位置にが2 つ (少なくとも 1 つ)あるためです。 TRUE
TRUE
any
TRUE
matrix
からこれを取得する方が良い場合は、データ構造をまたはdata.frame
または何か他のものに変更しても問題ありませんlapply
。