r - 使用一个命令查找不同类型的缺失值 - 语法错误?
问题描述
我似乎有一个我无法找到的语法错误。
我有一列数据框分隔在名为column
. 我想在此列中查找所有缺失值。但是,由于某种原因,我返回了整个列表。
这是我的尝试
> length(column)
[1] 712789
> length(column[column == ""])
[1] 24181
> length(column[column == "0"])
[1] 24181
> length(column[is.na(column)])
[1] 24181
> length(column[column == "" || column == "0" || is.na(column)])
[1] 712789
这很奇怪。我希望最后一个子集24181
也是如此。即使上面的所有子集都引用不同的元素,输出也不应该大于24181 x 3 = 72549
. 相反,整个列表是子集的一部分。
我究竟做错了什么?
[编辑]
出于好奇心,我尝试了两个(而不是三个)子集的任意组合:结果也是712789
每次。
解决方案
最后一行代码应该使用|
而不是||
.
单个垂直条适用于向量,但双条仅适用于标量。
假设列的第 i 个值为“”。那么结果的第 i 个值"" == "" | "" == "0" | is.na("")
等于 TRUE | 错误 | FALSE 是 TRUE。
假设列的第 i 个值为“0”。那么结果的第 i 个值"0" == "" | "0" == "0" | is.na("0")
等于 FALSE | 真的 | FALSE 是 TRUE。
假设列的第 i 个值为 NA。那么结果的第 i 个值NA == "" | NA == "0" | is.na(NA)
等于 NA | 不适用 | TRUE 是 TRUE。
因此,对于任何条件,结果的第 i 个值都是 TRUE。否则为 FALSE。
有关详细信息,请参阅: 布尔运算符 && 和 ||
推荐阅读
- java - 无法读取 EBCDIC 037 解码图像 (Java)
- python - 根据一行中的值选择numpy列
- sql-server - 使用特定标量 UDF 生成 DACPAC 时出现 NULL 引用异常
- python - AttributeError:“_tkinter.tkapp”对象没有属性“mousePressEvent”
- c++ - `u8string_view` 到 `char` 数组中而不违反严格混叠?
- python - 使用 Eel 将 JavaScript 变量值传递给 Python
- javascript - HTML 表格行跨度
- javascript - Javascript - 全局变量未定义
- c# - 在继承链中编辑父级,同时维护基本父级\子级
- jquery - 链式下拉列表。“this.value”的问题 - jquery,django