[R] Apply a function to each cell of a ragged matrix

XIAO LIU xiaoliu at jhmi.edu
Tue Feb 17 23:38:46 CET 2004


R-Helpers:

There are a matrix x and a factor f.  nrow(x) == length(f), e.g.:
x <- matrix(1:6, nrow = 3)
f <- factor(c("daytime", "daytime", "night"))

I want the sum of all elements of rows of "x" for each corresponding level in factor "f",
In this case, I want output like:
"daytime" [1] x[1,1]+x[2,1]+x[1,2]+x[2,2]
"night"   [2] x[3,1]+x[3,2]

But, tapply(x,f,sum) or by(x,f,sum) do not work.  What other functions can I use?

Thank you very much

Xiao




More information about the R-help mailing list