簡體   English   中英

R:為什么平均值(NA,na.rm = TRUE)返回NaN

[英]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))0mean(numeric(0))0 / 0 ,即NaN

mean文件:

na.rm一個邏輯值,指示在進行計算之前是否應刪除NA值。

通過這種邏輯,在應用函數均值之前,所有NA都將被刪除。 在您的情況下,您沒有應用均值(刪除了所有NA),因此返回了NaN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM