expand.grid using a matrix and a vector as input

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

expand.grid using a matrix and a vector as input

eugen
 
Hello R-users,
 
I have the following question, for which my search did not really return any usable result.
If I have a matrix a1, and a vector a2 like below
 
a1<-matrix(c(1:4),2,2)
a2<-c(8,9)
 
is there any function like the expand.grid (or some clever calling of the function) such that it outputs a matrix or dataframe where the entire a1 matrix is repeated for each value of a2 (the rbind and cbind solution is not something that i am after).
The desired output is:
 
out=
1 3 8
2 4 8
1 3 9
2 4 9
 
Thank you in advance and have a great day ahead!
Eugen
 
 
        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: expand.grid using a matrix and a vector as input

D. Rizopoulos
One possibility is to use something like the following:

a1 <- matrix(1:4, 2, 2)
a2 <- c(8, 9)

cbind(a1[rep(1:nrow(a1), length(a2)), ], rep(a2, each = nrow(a1)))


I hope it helps.

Best,
Dimitris


On 3/15/2012 1:33 PM, eugen pircalabelu wrote:

>
> Hello R-users,
>
> I have the following question, for which my search did not really return any usable result.
> If I have a matrix a1, and a vector a2 like below
>
> a1<-matrix(c(1:4),2,2)
> a2<-c(8,9)
>
> is there any function like the expand.grid (or some clever calling of the function) such that it outputs a matrix or dataframe where the entire a1 matrix is repeated for each value of a2 (the rbind and cbind solution is not something that i am after).
> The desired output is:
>
> out=
> 1 3 8
> 2 4 8
> 1 3 9
> 2 4 9
>
> Thank you in advance and have a great day ahead!
> Eugen
>
>
> [[alternative HTML version deleted]]
>
>
>
>
> ______________________________________________
> [hidden email] 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.

--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/

______________________________________________
[hidden email] 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.