It works, Arun. Thanks! (FYI, a couple a the matrices I am dealing with have 1000+ rows, so I had to do in on a supercomputer at work. For the curious, I am trying to find all possible scores in a model f language mixing described in: Title: Structured Variation in Codeswitching: Towards an Empirically Based Typology of Bilingual Speech Patterns Authors: Deuchar, Margaret; Muysken, Pieter; Wang, Sung-Lan Publication Date: 2007 Journal Name: International Journal of Bilingual Education and Bilingualism)
Bruno Estigarribia Assistant Professor of Spanish, Department of Romance Languages and Literatures Research Assistant Professor of Psychology, Cognitive Science Program Affiliate Faculty, Global Studies Dey Hall, Room 332, CB# 3170 University of North Carolina at Chapel Hill estig...@email.unc.edu 917-348-8162 On 5/27/13 1:54 PM, "arun" <smartpink...@yahoo.com> wrote: >Hi, >Not sure if this is what you expected: > >set.seed(24) >mat1<- matrix(sample(1:20,3*4,replace=TRUE),ncol=3) >set.seed(28) >mat2<- matrix(sample(1:25,3*6,replace=TRUE),ncol=3) >set.seed(30) >mat3<- matrix(sample(1:35,3*8,replace=TRUE),ncol=3) >set.seed(35) >mat4<- matrix(sample(1:40,3*10,replace=TRUE),ncol=3) > >dat1<-expand.grid(seq(dim(mat1)[1]),seq(dim(mat2)[1]),seq(dim(mat3)[1]),se >q(dim(mat4)[1])) >vec1<-paste0("mat",1:4) >matNew<-do.call(cbind,lapply(seq_len(ncol(dat1)),function(i) >get(vec1[i])[dat1[,i],])) >colnames(matNew)<- (seq(12)-1)%%3+1 >datNew<-data.frame(matNew) >res<-sapply(split(colnames(datNew),gsub("\\..*","",colnames(datNew))),func >tion(x) rowSums(datNew[,x])) > >dim(res) >#[1] 1920 3 > head(res) ># X1 X2 X3 >#[1,] 46 63 70 >#[2,] 45 68 59 >#[3,] 55 55 66 >#[4,] 51 65 61 >#[5,] 48 84 75 >#[6,] 47 89 64 > >A.K. > >----- Original Message ----- >From: "Estigarribia, Bruno" <estig...@email.unc.edu> >To: "r-help@R-project.org" <r-help@r-project.org> >Cc: >Sent: Monday, May 27, 2013 11:24 AM >Subject: [R] How sum all possible combinations of rows, given 4 matrices > >Hello all, > >I have 4 matrices with 3 columns each (different number of rows though). I >want to find a function that returns all possible 3-place vectors >corresponding to the sum by columns of picking one row from matrix 1, one >from matrix 2, one from matrix 3, and one from matrix 4. So basically, all >possible ways of picking one row from each matrix and then sum their >columns to obtain a 3-place vector. >Is there a way to use expand.grid and reduce to obtain this result? Or am >I on the wrong track? >Thank you, >Bruno >PS:I believe I have given all relevant info. I apologize in advance if my >question is ill-posed or ambiguous. > >______________________________________________ >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.