[R] Matrix to "database" -- best practices/efficiency?
Jonathan Greenberg
greenberg at ucdavis.edu
Tue Jun 8 04:33:56 CEST 2010
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
More information about the R-help
mailing list