当前位置:  开发笔记 > 编程语言 > 正文

矢量化OR函数,用于计算FALSE | NA和NA | 假为假?

如何解决《矢量化OR函数,用于计算FALSE|NA和NA|假为假?》经验,为你挑选了1个好方法。

鉴于载体:

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)

或者有没有其他简单的方法来输出vect4vect1vect2



1> talat..:

您可以计算并列最大值(使用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.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有