Message-ID: <1359059239.64805.YahooMailNeo@web142602.mail.bf1.yahoo.com>
Date: 2013-01-24T20:27:19Z
From: arun
Subject: Question on matrix calculation
In-Reply-To: <CA+dpOJm8PC1ALNJ5s8yvByemP7ht2ADfjrmQQP7goTQ4xipi=Q@mail.gmail.com>
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.