Skip to content
Prev 166197 / 398502 Next

NA and NaN question

Pascal A. Niklaus wrote:
note the types:

typeof(c())
typeof(c(NA))
typeof(c(NA)[-na.omit(c(NA))])

now,

mean(NULL)
mean(logical(0))

mean(c())
# NA, because you take the mean of a vector of non-{numeric,logical}
type (see the warning message)
mean(c(NA), na.rm=TRUE)
# NaN, because you take the mean of a zero-length logical vector
mean(c(NA), na.rm=FALSE)
# NA, because you take the mean of a logical vector containing an NA


you can argue that ?mean underspecifies this (it doesn't say anything
about the value for a zero-length logical, numeric, or complex vector,
though you can guess it will be the value of 0/0).

vQ