[R] Question on matrix calculation

Rui Barradas ruipbarradas at sapo.pt
Thu Jan 24 20:48:40 CET 2013


Hello,

Something like this?

do.call(rbind, lapply(split(as.data.frame(mat), match_df$criteria), 
colSums))


Hope this helps,

Rui Barradas

Em 24-01-2013 19:39, Christofer Bogaso escreveu:
> Hello again,
>
> Ley say I have 1 matrix and 1 data frame:
>
>> mat <- matrix(1:15, 5)
>> match_df <- data.frame(Seq = 1:5, criteria = sample(letters[1:5], 5, replace = T))
>> mat
>       [,1] [,2] [,3]
> [1,]    1    6   11
> [2,]    2    7   12
> [3,]    3    8   13
> [4,]    4    9   14
> [5,]    5   10   15
>> match_df
>    Seq criteria
> 1   1        c
> 2   2        e
> 3   3        c
> 4   4        c
> 5   5        d
>
> Now I want to get the column-sums of 'mat' based on the unique
> elements of match_df[,'criteria']
>
> Therefore based on the 'match_df', my resulting matrix will have 3
> rows (because the unique elements here are 'c, e, & d'). And.........
>
> 1st row will be column sums for mat[c(1,3,4), ]
> 2nd row will be column sums for mat[c(2), ]
> 3rd row will be column sums for mat[c(5), ]
>
> I want to get a general framework, so that I can implement that in
> some big arbitrary matrix.
>
> Can somebody give me some pointer?
>
> Thanks and regards,
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list