[R-sig-DB] Saving R-objects to a database
Christian Ruckert
cruckert @end|ng |rom un|-muen@ter@de
Wed Oct 1 12:42:52 CEST 2008
>> Someone solved the problem of saving R-objects to a database or can give me
>> an answer like "this is not possible at the moment"?
>>
>> All my attempts runned into problems with conversion between blob, raw and
>> character representations. Saving the R-object to a file and then getting it
>> into the db leads to similar problems. Is saving to the file system the only
>> practicable solution?
>
> Look at the serialize function. You can serialize any R object which
> can be stored into the database of your choice. Give that a try and
> let us know with a code example if you have problems.
This is what I posted on r-mailing list before:
> ser = serialize(obj, NULL)
> dbSendQuery(link, paste("insert into table values(1, '",ser,"')",sep=''))
>
> The field to save the object in the MySQL Database is of type blob.
>
> result = dbGetQuery(link,"select * from table where id=1")
>
> unser = unserialize(result[1,"object_column"], NULL)
> Error in unserialize(result[1, "object_column"], NULL) : unknown
input format
> In addition: Warning message:
> In unserialize(result[1, "object_column"], NULL) :
> unserialize()from a character string is deprecated and will be
withdrawn in R 2.8.0
Brian Ripley answered:
"DBI needs to convert blobs to raw not character."
So saving to the db works fine, but function dbGetQuery seems to convert
the result to a character string. Can I avoid this convertion or is this
a problem with DBI package and will it get fixed?
More information about the R-sig-DB
mailing list