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

Bill.Venables at csiro.au Bill.Venables at csiro.au
Tue Jun 8 06:30:14 CEST 2010

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:


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


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:


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))
		} else


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?


R-help at r-project.org mailing list
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