小编Jam*_*son的帖子

na.rm和is.na给出了不同的答案

我刚刚遇到一个简单的问题,但我不明白发生了什么.我使用R来删除NA值并计算简单的汇总统计信息,但is.na和na.rm给了我不同的答案.

如果我有一个矢量

> test<-c(NA, NA,NA, 1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

我用na.rm = TRUE计算平均值,得到正确的c(1,2,3,4)平均值.

> mean(test, na.rm=TRUE)
[1] 2.5
Run Code Online (Sandbox Code Playgroud)

如果我重复计算,这次用!is.na()删除NA值,我得到了错误的答案.

> mean(!is.na(test))
[1] 0.5714286
Run Code Online (Sandbox Code Playgroud)

!is.na(测试)给了我正确的值,但R如何估算这里的平均值?

> !is.na(test)
[1] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
Run Code Online (Sandbox Code Playgroud)

r mean na na.rm

1
推荐指数
1
解决办法
1583
查看次数

标签 统计

mean ×1

na ×1

na.rm ×1

r ×1