mystats <- function(x, na.omit=FALSE){
if (na.omit)
x <- x[!is.na(x)]
m <- mean(x)
n <- length(x)
s <- sd(x)
skew <- sum((x-m)^3/s^3)/n
kurt <- sum((x-m)^4/s^4)/n - 3
return(c(n=n, mean=m, stdev=s, skew=skew, kurtosis=kurt))
}
myvars <- c("mpg", "hp", "wt")
sapply(mtcars[myvars], mystats)
今天在看R语言实战里这段时突然想到一个问题,R是怎么区分条件语句if的执行范围的?
这个函数里的意思应该是求均值、方差什么的,如果na.omit=T把为空的去掉。那为什么R不会认为是在na.omit=T时才去执行下面的均值、方差、峰度的运算呢?
就因为x那一行首行缩进了吗?