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

Estigarribia, Bruno estigarr at email.unc.edu
Mon Jun 10 21:37:09 CEST 2013


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
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
> 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" <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
>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