![](/img/trans.png)
[英]mean of c(NA, NA) differs between na.rm = TRUE and na.rm = FALSE why?
[英]R: Why does mean(NA, na.rm = TRUE) return NaN
當使用所有NA的向量估計均值時,如果na.rm = TRUE
我們將得到一個NaN
。 為什么會這樣,這是有缺陷的邏輯,還是我想念的東西? 當然使用NA
比使用NaN
更有意義嗎?
下面的快速示例
mean(NA, na.rm = TRUE)
#[1] NaN
mean(rep(NA, 10), na.rm = TRUE)
#[1] NaN
遺憾的是, ?mean
沒有對此說任何話。 我的評論僅告訴您,對空的“數字”應用mean
導致NaN
更多的推理。 瑞·巴拉達斯(Rui Barradas)的評論試圖說明這一點,但並不准確,因為除以0
並不總是NaN
,它可以是Inf
或-Inf
。 我曾經在R:元素級矩陣除法中對此進行過討論。 但是,我們正在接近。 盡管mean(x)
並不是用sum(x) / length(x)
編碼的,但是這個數學事實確實可以解釋這個NaN
。
從?sum:
*NB:* the sum of an empty set is zero, by definition.
因此sum(numeric(0))
為0
。 當length(numeric(0))
為0
, mean(numeric(0))
為0 / 0
,即NaN
。
從mean
文件:
na.rm一個邏輯值,指示在進行計算之前是否應刪除NA值。
通過這種邏輯,在應用函數均值之前,所有NA都將被刪除。 在您的情況下,您沒有應用均值(刪除了所有NA),因此返回了NaN。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.