[R] Question on matrix calculation

arun smartpink111 at yahoo.com
Thu Jan 24 21:27:19 CET 2013


Hi,

You could also use:
mat <- matrix(1:15, 5)
set.seed(5)
match_df <- data.frame(Seq = 1:5, criteria = sample(letters[1:5], 5, replace = T),stringsAsFactors=F)
library(plyr) 
res<-daply(as.data.frame(mat),.(match_df$criteria),colSums)
res 
                 
#match_df$criteria V1 V2 V3
  #              a  5 10 15
   #             b  5 15 25
    #            d  2  7 12
      #          e  3  8 13


A.K.



----- Original Message -----
From: Christofer Bogaso <bogaso.christofer at gmail.com>
To: r-help <r-help at r-project.org>
Cc: 
Sent: Thursday, January 24, 2013 2:39 PM
Subject: [R] Question on matrix calculation

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