function (x, na.rm = TRUE)
{
xna <- is.na(x)
if (na.rm)
x <- x[!xna]
else if (any(xna))
return(rep.int(NA, 5))
x <- sort(x)
n <- length(x)
if (n == 0)
rep.int(NA, 5)
else {
n4 <- floor((n + 3)/2)/2
d <- c(1, n4, (n + 1)/2, n + 1 - n4, n)
0.5 * (x[floor(d)] + x[ceiling(d)])
}
}
R和C这些语言不一样,同一个函数,不同的输入可能会有不同的返回值类型。对于一次特定的调用,可以用class()、typeof()函数看类型,其中class()给的是更“高级”一点的类型概念,typeof()用得比较少,给的是“低级”一点的类型概念。