[R] Combine vectors in order to form matrixes with combn

Phil Spector spector at stat.berkeley.edu
Mon Sep 21 18:03:30 CEST 2009


Moreno -
   While it's possible to do what you want with 8 individual
vectors, the problem is much easier to solve if you combine
them into a list:

v = list(c(2,5,6,8),c(3,7,9,11),c(13,4,2,7),
          c(3.4,6,11,21),c(1,9,45,3),c(2,76,4,2),
          c(34,7,8,1),c(2,6,1,9))

combs = combn(1:length(v),4)
res = lapply(as.data.frame(combs),function(x)do.call(cbind,v[x]))

res is a list containing the 70 matrices that you want.

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Mon, 21 Sep 2009, Moreno Mancosu wrote:

>> Moreno,
>>
>> I don't understand exactly what it is you are trying to
> do.  Can you explain what you want your matrices to look like?  Perhaps
> give an example.
>>
>> Bryan
>
>
> Dear Bryan,
>
> let's try with an example: i
> have 8 column vectors
>
> v1<-matrix(c(2,5,6,8))
> v2<-matrix(c(3,7,9,11))
>
> v3<-matrix(c(13,4,2,7))
> v4<-matrix(c(3.4,6,11,21))
> v5<-matrix(c
> (1,9,45,3))
> v6<-matrix(c(2,76,4,2))
> v7<-matrix(c(34,7,8,1))
> v8<-matrix(c
> (2,6,1,9))
>
> I would like to form a combination of theese vectors in
> order to obtain a set of matrixes in the form
> "k-combinations from a
> set" of n elements, when the set is the number of vectors (in this case
> 8)
> and k is the number of columns (in this case 4):
>
> in this example,
> i would like to obtain
>
>
> matrix_1
>
>     [,1] [,2] [,3] [,4]
>
> [1,]    2    3   13  3.4
> [2,]    5    7    4  6.0
> [3,]    6    9    2
> 11.0
> [4,]    8   11    7 21.0
>
> matrix_2
>
>     [,1] [,2] [,3] [,4]
>
> [1,]    2    3   13    1
> [2,]    5    7    4    9
> [3,]    6    9    2
> 45
> [4,]    8   11    7    3
>
> matrix_3
>
>     [,1] [,2] [,3] [,4]
> [1,]
> 2    3   13    2
> [2,]    5    7    4   76
> [3,]    6    9    2    4
>
> [4,]    8   11    7    2
>
> [...]
>
> matrix_n!/k!(n-k!)
>
>     [,1] [,2] [,
> 3] [,4]
> [1,]    1    2   34    2
> [2,]    9   76    7    6
> [3,]   45
> 4    8    1
> [4,]    3    2    1    9
>
> I hope I was more clear!
>
>
> However, thanks in advance,
>
> Moreno
>
>
> Tutto Incluso Light: chiami e navighi senza limiti a soli 9,95 euro al mese. Gratis la Sim Tiscali Mobile con 25 euro di traffico! ATTIVA ORA
>
> http://abbonati.tiscali.it/telefono-adsl/prodotti/tc/tuttoincluso_light/
>
> ______________________________________________
> 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