[R] getting sapply to skip columns with non-numeric data?

Gabor Grothendieck ggrothendieck at gmail.com
Fri Aug 18 01:19:58 CEST 2006

Use the first few rows of iris as test data and try this
where isnum is 1 for each numeric column and NA for

irish <- head(iris)
isnum <- ifelse(sapply(iris, class) == "numeric", 1, NA)
iris.data <- data.matrix(iris)
rbind(iris, colMeans(iris.data) * isnum, sd(iris.data) * isnum)

On 8/17/06, r user <ruser2006 at yahoo.com> wrote:
> getting s-apply to skip columns with non-numeric data?
> I have a dataframe "x" of w columns.
> Some columns are numeric, some are not.
> I wish to create a function to calculate the mean and
> standard deviation of each numeric column, and then
> "bind" the column mean and standard deviation to the
> bottom of the dataframe.
> e.g.
> tempmean <- apply(data.frame(x), 2, mean, na.rm = T)
> xnew <- rbind(x,tempmean)
> I am running into one small problem…what is the best
> way to have sapply "skip" the non-numeric data and
> return NA's?
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list