On Mon, Oct 24, 2011 at 5:39 AM, Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
> Suppose I have data like this:
>
> A <- sample(letters[1:3], 1000, replace=TRUE)
> B <- sample(LETTERS[1:2], 1000, replace=TRUE)
> x <- rnorm(1000)
>
> I can get a table of means via
>
> tapply(x, list(A, B), mean)
>
> and I can add the marginal means to this using cbind/rbind:
>
> main <- tapply(x, list(A,B), mean)
> Amargin <- tapply(x, list(A), mean)
> Bmargin <- tapply(x, list(B), mean)
>
> rbind(cbind(main, all=Amargin),all=c(Bmargin, mean(x)))
>
> But this is tedious.  Has some package got some code that makes this easier?

Have a look at reshape2::add_margins - it's not super efficient, but I
think cool because it works for arbitrarily many dimensions.

Hadley

-- 
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/

______________________________________________
R-help@r-project.org 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.

Reply via email to