给定向量:
vect1 <- c(TRUE,FALSE,FALSE,NA,NA,NA,TRUE,FALSE,NA,FALSE)
vect2 <- c(TRUE,NA,FALSE,NA,FALSE,TRUE,FALSE,NA,TRUE,NA)
vect3 <- vect1 | vect2
vect3 #c(TRUE,NA,FALSE,NA,NA,TRUE,TRUE,NA,TRUE,NA)
是否有矢量化中缀函数
x
评估这样的元素:TRUE x TRUE #TRUE
TRUE x FALSE #TRUE
FALSE x TRUE #TRUE
FALSE x FALSE #FALSE
TRUE x NA #TRUE
NA x TRUE #TRUE
FALSE x NA #FALSE - would have been NA with ordinary "|"
NA x FALSE #FALSE - would have been NA with ordinary "|"
NA x NA #NA
生成向量
vect4
像这样:vect4 #c(TRUE,FALSE,FALSE,NA,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE)
或者有没有其他简单的方法可以输出
vect4
来自 vect1
和 vect2
?
最佳答案
您可以计算并行最大值(使用 na.rm = TRUE
)并转换为 logical
:
as.logical(pmax(vect1, vect2, na.rm = TRUE))
# [1] TRUE FALSE FALSE NA FALSE TRUE TRUE FALSE TRUE FALSE
请注意,通过计算逻辑向量的最大值,
TRUE
被解释为整数 1 和 FALSE
作为整数 0。
关于r - 计算 FALSE 的向量化 OR 函数 | NA 和 NA |假如假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34242585/