R中多向量的元素与

R中多向量的元素与,r,vector,logical-operators,R,Vector,Logical Operators,我有几个向量,我希望将它们&放在一起(即,我将&每个向量的所有第一个元素,所有第二个元素,等等)。假设它们都是等长的。结果应该是与单个向量长度相同的逻辑向量 我曾想过这样做,但没有成功: a = c(NA, 1, 2, 3) b = c(0, 1, 2, 3) d = c(NA, 1, NA, 3) do.call("&", list(a, b, d)) # Error in do.call("&", list(a, b, d)) : binary operations requ

我有几个向量,我希望将它们
&
放在一起(即,我将
&
每个向量的所有第一个元素,所有第二个元素,等等)。假设它们都是等长的。结果应该是与单个向量长度相同的逻辑向量

我曾想过这样做,但没有成功:

a = c(NA, 1, 2, 3)
b = c(0, 1, 2, 3)
d = c(NA, 1, NA, 3)
do.call("&", list(a, b, d))
# Error in do.call("&", list(a, b, d)) : binary operations require two arguments

我想您需要
Reduce()

这适用于列表中的元素。对照

v <- logical(4)
for(i in 1:4) v[i] <- a[i] & b[i] & d[i]
v
# [1] FALSE  TRUE    NA  TRUE
v或者:

mapply(function(a,b,c) a & b & c, a, b, d)
[1] FALSE  TRUE    NA  TRUE

我只是想试试。我想那是对的。。永远忘记那些减少,地图等。谢谢!如果你复制到一个答案中,我会接受Reduce更好,因为我有一个未知数量的向量,我只是绑定到一个列表
mapply(function(a,b,c) a & b & c, a, b, d)
[1] FALSE  TRUE    NA  TRUE