why sd() can be applied to character vector?
On Sat, Oct 27, 2012 at 10:16 AM, Jinsong Zhao <jszhao at yeah.net> wrote:
Hi there, In the following example, sd() can be applied to a character vector. However, mean() can not be run in a similar way. Why? I have read sd() man page, however, I don't find information about that behavior.
x <- as.character(1:10) sd(x)
[1] 3.02765
mean(x)
[1] NA Warning message: In mean.default(x) : argument is not numeric or logical: returning NA
Practically, I see $R_HOME/src/library/stats/src/cov.c:633 has x = PROTECT(coerceVector(x, REALSXP)); which seems to be responsible for the behavior you note (eventually calling $R_HOME/src/main/util.c:1463), but mean.default catches the character case early and returns NA_real_. None of that explains the reasoning however and it does seem a little anomalous Cheers, Michael