r - 用条件子集向量(不包括 NA)

标签 r logical-operators na

vector1 = c(1,2,3,NA)
condition1 = (vector1 == 2)
vector1[condition1]
vector1[condition1==TRUE]

在上面的代码中,条件1是“FALSE TRUE FALSE NA”,
第 3 行和第 4 行都给了我结果“2 NA”
这不是我所期望的。

我想要值真正为“2”的元素,不包括 NA。

有人可以解释为什么 R 被设计为以这种方式工作吗?
以及如何使用简单的命令获得我想要的结果?

最佳答案

子集vector[NA]将永远是 NA因为NA值未知,因此子集的结果也是未知的。 %in%返回 FALSENA ,所以它在这里很有用。

vector1 = c(1,2,3,NA)
condition1 = (vector1 %in% 2)
vector1[condition1]
# [1] 2

关于r - 用条件子集向量(不包括 NA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49890223/

相关文章:

java - token ">="出现语法错误,删除此 token

r - 在 r 中的基本图形中绘制多条拟合线

r - 为什么 coord_proj 和 ggplot2 给我这个错误?

r - Kolmogorov-Smirnov 或分布的卡方检验?

excel - 在 Excel 中将 OR 逻辑函数与 SUMIFS 一起使用

javascript - 使用短路逻辑运算符测试空对象

R:将一个矩阵中的元素替换为另一个矩阵中 NA 对应位置的元素

r - 去除 NA 的 max.col

r - 用新数据框中的数据插入 NA

python - 无论如何,排除 H2O 中的截距(python 和 R)都会产生非零截距系数