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.christo...@gmail.com> To: r-help <r-help@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@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. ______________________________________________ R-help@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.