这个可重现的示例是我代码的一个非常简化的版本:
x <- c(NaN, 2, 3)
#This is fine, as expected
max(x)
> NaN
#Why does na.rm remove NaN?
max(x, na.rm=TRUE)
> 3
对于我来说,缺失值NA
和非数字NaN
是两个完全不同的概念,为什么na.rm
会移除NaN
?怎样才能忽略NA
而不是NaN
?
ps:我使用的是64位Windows7上的R版本3.0.0。编辑:经过更深入的研究,我发现
is.na
也会对NaN
返回true!这就是我感到困惑的原因。is.na(NaN)
> TRUE
sum
的帮助文档指出na.rm = TRUE
将删除NaN
和NA
(而?Extremes
则不会)。 - mnelclass(NA_real_)
。 - Matthew Lundberg