[R] 'split-lapply' vs. 'aggregate'

Fox, John jfox at mcmaster.ca
Mon Mar 28 02:35:24 CEST 2016

Dear Massimo,

The difference is in the handling of NAs. Try, e.g., airquality <- na.omit(airquality) and compare again.


John Fox, Professor
McMaster University
Hamilton, Ontario
Canada L8S 4M4
web: socserv.mcmaster.ca/jfox

From: R-help [r-help-bounces at r-project.org] on behalf of Massimo Bressan [massimo.bressan at arpa.veneto.it]
Sent: March 27, 2016 5:45 PM
To: r-help at r-project.org
Subject: [R] 'split-lapply' vs. 'aggregate'

this might be a trivial question (eventually sorry for that!) but I definitely can not catch the problem here...

please consider the following reproducible example: why of different results through 'split-lapply' vs. 'aggregate'?
I've been also through a check against different methods (e.g. data.table, dplyr) and the results were always consistent with 'split-lapply' but apparently not with 'aggregate'

I must be certainly wrong!
could someone point me in the right direction?



s <- split(airquality, airquality$Month)
ls <- lapply(s, function(x) {colMeans(x[c("Ozone", "Solar.R", "Wind")], na.rm = TRUE)})
do.call(rbind, ls)

# slightly different results with
aggregate(.~ Month, airquality[-c(4,6)], mean, na.rm=TRUE)


        [[alternative HTML version deleted]]

R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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