From: <Bill.Venables_at_csiro.au>

Date: Tue, 08 Jun 2010 14:30:14 +1000

expand.grid(id_a = id_a, id_b = id_b), mat = as.vector(my_matrix)

)

}

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.

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. Received on Tue 08 Jun 2010 - 04:32:35 GMT

Date: Tue, 08 Jun 2010 14:30:14 +1000

I think what you are groping for is something like this

my_matrix <- matrix(1:60, nrow = 6) id_a <- seq(10,60,by=10) id_b <- seq(100,1000,by=100) my_database <- cbind(

expand.grid(id_a = id_a, id_b = id_b), mat = as.vector(my_matrix)

)

-----Original Message-----

From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On Behalf Of Jonathan Greenberg
Sent: Tuesday, 8 June 2010 12:34 PM

To: r-help

Subject: [R] Matrix to "database" -- best practices/efficiency?

I have a matrix of, say, M and N dimensions:

my_matrix=matrix(c(1:60),nrow=6,ncol=10)

I have two "id" vectors corresponding to the rows and columns, e.g.:

id_m=seq(10,60,by=10)

id_n=seq(100,1000,by=100)

I would like to create a "proper" database (let's say a data.frame for this example -- i'm going to be loading these into an SQLite database, but we'll leave that complication out of this discussion for now) of m x n rows, and 3 columns, where the 3 columns relate to the values from m, n, and my_matrix respectively, e.g. a single row follows the form:

c(id_m[a],id_n[b],my_matrix[a,b])

I can, of course, for-loop this thing with an if-then, e.g.:

****
*

for (a in 1:length(id_m))

{

for (b in 1:length(id_n)) { if ((a==1) && (b==1)) { my_database=c(id_m[a],id_n[b],my_matrix[a,b]) } else { my_database=rbind(my_database,c(id_m[a],id_n[b],my_matrix[a,b])) } }

}

****
*

But my gut is telling me this is an incredibly inefficient way of doing this -- is there a faster approach to doing this same process? Thanks!

--j

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.

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. Received on Tue 08 Jun 2010 - 04:32:35 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Tue 08 Jun 2010 - 08:50:28 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*