[R] differing behavior of mean(), median() and sd() with na.rm

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Wed Aug 22 16:47:55 CEST 2018

On 22/08/2018 10:33 AM, Ivan Calandra wrote:
> Dear useRs,
> I have just noticed that when input is only NA with na.rm=TRUE, mean()
> results in NaN, whereas median() and sd() produce NA. Shouldn't it all
> be the same? I think NA makes more sense than NaN in that case.

The mean can be defined as sum(x)/length(x), so if x is length 0, you 
get 0/0 which is NaN.

median(x) is documented in its help page to give NA for x of length 0.

sd(x) is documented to give an error for such x and NA for length 1, but 
it gives NA for both.

Duncan Murdoch
> x <- c(NA, NA, NA) mean(x, na.rm=TRUE) [1] NaN median(x, na.rm=TRUE) [1]
> NAsd(x, na.rm=TRUE) [1] NA
> Thanks for any feedback.
> Best,
> Ivan

More information about the R-help mailing list