# [R] How sum all possible combinations of rows, given 4 matrices

Estigarribia, Bruno estigarr at email.unc.edu
Tue May 28 14:36:29 CEST 2013

```Thank you, Arun, I'll try it and let the list know if it works so the
thread can be closed. I haven't worked in R for several years so I am
really rusty.
FYI, for people interested in why I want to do this, I am trying to
calculate all the possible outcomes of applying the model below to a
bilingual corpus:
Deuchar, Margaret, Pieter Muysken, Sung-Lan Wang. 2007. ³Structured
Variation in Codeswitching:Towards an Empirically Based Typology of
Bilingual Speech Patterns.²International Journal of Bilingual Education
and Bilingualism 10 (3):
298­340.
I accept responsibility for not having included this information in the
original post.

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
estigarr at email.unc.edu
917-348-8162

On 5/27/13 1:54 PM, "arun" <smartpink111 at 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
>#     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" <estigarr at email.unc.edu>
>To: "r-help at R-project.org" <r-help at 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 at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help