use*_*275 5 r logical-operators na
vector1 = c(1,2,3,NA)
condition1 = (vector1 == 2)
vector1[condition1]
vector1[condition1==TRUE]
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,条件 1 是“FALSE TRUE FALSE NA”,第 3 行和第 4 行都给了我出乎意料的结果“2 NA”。
我想要值真正为“2”的元素,不包括 NA。
有人能解释一下为什么 R 被设计成以这种方式工作吗?以及如何使用简单的命令获得我想要的结果?
在这种情况下尝试逻辑运算符,
vector1 = c(1,2,3,NA)
condition1<-(vector1==2 & !is.na(vector1) )
condition1
# FALSE TRUE FALSE FALSE
vector1[condition1]
# 2
Run Code Online (Sandbox Code Playgroud)
当两个逻辑运算符都为 True 时,& 运算返回 true。