Ralph S.
2008-Jul-20 23:16 UTC
[R] Sum efficiently from large matrix according to re-occuring levels of factor?
Hi, I am trying to calculate the sum for each occurrence of the level of a factor in a very large matrix. In addition, I want to save that sum together with the information of the level of the factor and the level of a second factor. My matrix looks like this: x<-matrix(c(1,1,1,2,2,3,3,1,1,7,7,7,4,4,2,2,7,7,1,1,1,1,1,1,2,5,5),9,3) I want to sum according to the levels in the first column and save the sum with the information of the level in the first and the second column in a new matrix. That is, I want output in the matrix of form: 1 7 3 2 4 2 3 2 3 1 7 10 The important thing is, that a factor level such as "1" in the example can re-occur many times. There are no regularities on the number of re-occurences etc. How could I do this efficiently (the matrix is large:>10^6 rows)? Many thanks!! -Ralph _________________________________________________________________ [[elided Hotmail spam]]
hadley wickham
2008-Jul-20 23:47 UTC
[R] Sum efficiently from large matrix according to re-occuring levels of factor?
On Sun, Jul 20, 2008 at 4:16 PM, Ralph S. <ruffel1 at hotmail.com> wrote:> > Hi, > > I am trying to calculate the sum for each occurrence of the level of a factor in a very large matrix. In addition, I want to save that sum together with the information of the level of the factor and the level of a second factor. > > My matrix looks like this: > > x<-matrix(c(1,1,1,2,2,3,3,1,1,7,7,7,4,4,2,2,7,7,1,1,1,1,1,1,2,5,5),9,3) > > I want to sum according to the levels in the first column and save the sum with the information of the level in the first and the second column in a new matrix. > > That is, I want output in the matrix of form: > > 1 7 3 > 2 4 2 > 3 2 3 > 1 7 10 >Why that and not: 1 7 13 2 4 2 3 2 3 ? Hadley -- http://had.co.nz/