mean(mtcars) methods(mean) mean mean.data.frame <- function (df) { stopifnot(is.data.frame(df)) m <- vector("numeric", length(df)) m <- sapply(df, mean) return(m) } mean.data.frame(mtcars) mean.data.frame(iris) mean(mtcars) mean(iris) mean.data.frame <- function (df) { stopifnot(is.data.frame(df)) # m <- vector("numeric", length(df)) m <- rep(NA, length(df)) names(m) <- names(df) # m <- sapply(df, mean) for (i in 1:length(df)){ if (is.vector(df[[i]])) { m[i] <- mean(df[[i]]) } } return(m) } mean(dm) mean.data.frame(dm)