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