【发布时间】:2013-10-15 13:03:02
【问题描述】:
问题
如何使用元素比较与逻辑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 是因为否 TRUE 在列表的所有向量的第一个位置。结果的第二个值 TRUE 是因为向量的第二个位置有两个(至少一个,any)TRUE。
我可以将我的数据结构更改为 matrix 或 data.frame 或其他更好的东西,我只是从 lapply 得到这个。
【问题讨论】:
标签: r list boolean boolean-logic