鉴于载体:
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.