# Useful example:
#
# Create a 2-way table of means, standard errors, and # obs
set.seed(314159)
g1 <- sample(letters[1:5], 1000, replace=TRUE)
g2 <- sample(LETTERS[1:3], 1000, replace=TRUE )
dat <- rnorm(1000)
stderr <- function(x) sqrt( var(x,na.rm=TRUE) / nobs(x) )
## Depreciated:
means <- aggregate.table( dat, g1, g2, mean )
## Instead use:
means <- tapply( dat, list(g1, g2), mean )
## Depreciated
stderrs <- aggregate.table( dat, g1, g2, stderr )
## Instead use:
stderrs <- tapply( dat, list(g1, g2), stderr )
## Depreciated
ns <- aggregate.table( dat, g1, g2, nobs )
## Instead use:
ns <- tapply( dat, list(g1, g2), nobs )
blanks <- matrix( "", nrow=5, ncol=3)
tab <- interleave( "Mean"=round(means,2),
"Std Err"=round(stderrs,2),
"N"=ns, "" = blanks, sep="" )
print(tab, quote=FALSE)
Run the code above in your browser using DataLab