Skip to content

'split-lapply' vs. 'aggregate'

2 messages · Massimo Bressan, John Fox

#
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? 

thanks 

## 

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) 

##
#
Dear Massimo,

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

Best,
 John

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