# Mean and var inconsistency (PR#2094)

**Kevin.Wright@pioneer.com
**
Kevin.Wright@pioneer.com

*Wed, 2 Oct 2002 16:19:29 +0200 (MET DST)*

Full_Name: Kevin Wright
Version: 1.5.1
OS: Windows 95
Submission from: (NULL) (170.54.59.160)
Originally posted to r-devel, but after thinking about it more decided that this
is a bug. I encountered an unexpected difference in the way that mean and var
work:
>* mean(numeric(0))
*[1] NaN
>* var(numeric(0))
*Error in var(numeric(0)) : `x' is empty
Looking into this, I discovered in mean.default that sum(x)/n
evaluates as
>* sum(numeric(0))/length(numeric(0))
*[1] NaN
The function var seems to evaluate this:
>* .Internal(cov(numeric(0),NULL,"all.obs"))
*Error: `x' is empty
One possible fix would be to modify var to check that the length of x is greater
than 0, otherwise return NaN/NA.
Just for your information (not necessarily the desirable answer), in S-Plus
2000:
>* mean(numeric(0))
*NA
>* var(numeric(0))
*NA
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._