问题
如何使用逐元素比较和逻辑 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
中获得它就可以。
&
、|
或+
)只有在反引号(`)中而不是在引号(")中才能起作用。 - Matteo\
&`(var1, var2)`是正确的,因为我们正在调用名称为“&” 的对象。在这种情况下,该对象是一个函数。 - Ricardo Saporta