r - 有人可以解释 R 的逻辑测试结果的这种奇怪行为吗?
问题描述
在 R 中使用不同的逻辑测试组合时,我遇到了看似不一致的结果。这是一个可重现的示例:
x <- NA
y <- 1
is.na(x) # evaluates to TRUE
x == 2 # evaluates to NA
is.na(y) # evaluates to FALSE
y == 1 # evaluates to TRUE
is.na(x) & is.na(y) # evaluates to FALSE
is.na(x) & y == 1 # evaluates to TRUE
以上所有评估都符合我的期望。奇怪的部分(对我来说)如下:
x == 1 & y == 1 # evaluates to NA
x == 1 & is.na(y) # evaluates to FALSE
x == 1 & y == 0 # evaluates to FALSE
我假设x == 1 & y == 1
评估为,NA
因为x
为空,这阻止了对TRUE
or的逻辑评估FALSE
。所以,我的问题是为什么将逻辑更改为x == 1 & is.na(y)
或x == 1 & y == 0
实际导致FALSE
?我希望后两个逻辑测试也会产生结果,NA
因为x == 1
不能是TRUE
or FALSE
。
解决方案
推荐阅读
- sql - 将聚合列插入另一列
- xamarin - Xamarin 入口设置换行符
- php - Apache 配置不正确。PHP 显示为纯文本
- python - 从python列表中删除元素时如何避免最后一个元素的类型转换
- java - Unable to access Memory reference with help of JNA library
- elasticsearch - 弹性节点不共享数据?
- java - 如何使用 JDBC 在 Java 中获取存储过程的多个 SELECT 语句
- docker - 来自另一个磁盘的 Docker 持久存储:它会占用两个磁盘的空间吗?
- javascript - 使用 Sequalize.js 的 FK (mysql-db)
- highcharts - Highstock 对齐 0 个值