R中的正确/错误结果

R中的正确/错误结果,r,R,我有以下向量: A <- c(8.4, 9.5, 8.1) B <- c(NA,NA,NA) 显然,当R看到第二个变量中A不小于8.5时,它转到B,当有NA时,它将NA作为输出写入 您有什么建议可以避免这种情况吗?您可以使用is.na函数首先确定B是否为na,如果设置了,您可以检查它是否小于8 C <-(A < 8.5 | (!is.na(B) & B < 8) ) C使用isTRUE: isTRUE( FALSE | NA) [1] FALSE 使

我有以下向量:

A <- c(8.4, 9.5, 8.1)
B <- c(NA,NA,NA)
显然,当R看到第二个变量中A不小于8.5时,它转到B,当有NA时,它将NA作为输出写入


您有什么建议可以避免这种情况吗?

您可以使用
is.na
函数首先确定B是否为
na
,如果设置了,您可以检查它是否小于8

C <-(A < 8.5 | (!is.na(B) & B < 8) )

C使用
isTRUE

 isTRUE( FALSE | NA)
[1] FALSE
使用“C”作为变量名是不明智的,因为“C”和“C”都是(不同的)R函数。但以你为例:

> sapply(C, isTRUE)
[1]  TRUE FALSE  TRUE

这取决于你想如何治疗纳氏症。根据您的预期输出,NA应被视为一个大数字。也许您可以用Inf替换NA,然后执行您的操作。
 isTRUE( FALSE | NA)
[1] FALSE
> sapply(C, isTRUE)
[1]  TRUE FALSE  TRUE