我刚刚遇到一个简单的问题,但我不明白发生了什么。我正在使用 R 删除 NA 值并计算简单的汇总统计信息,但 is.na 和 na.rm 给了我不同的答案。
如果我有一个向量
> test<-c(NA, NA,NA, 1,2,3,4)
我用 na.rm = TRUE 计算平均值,得到 c(1,2,3,4) 的正确平均值。
> mean(test, na.rm=TRUE)
[1] 2.5
如果我重复计算,这次用 !is.na() 删除 NA 值,我会得到错误的答案。
> mean(!is.na(test))
[1] 0.5714286
!is.na(test) 给了我正确的值,但是 R 在这里如何估计平均值?
> !is.na(test)
[1] FALSE FALSE FALSE TRUE TRUE TRUE TRUE