2

R で作成された大きなリスト オブジェクトを RSQLite 経由で SQLite データベースに保存しようとしています。これらのリスト オブジェクトにはいくつかの 2 次元および 3 次元の行列が含まれているため、それらを個別のエントリとして格納したいと考えています。これらをシリアル化し、ブロブがトリックを行うように保存することを読みました。

ただし、問題は、私のコードが blob を個々の行として格納するのではなく、個々のバイトを行として格納するように見えないことです。これが私のコードです:

    library(RSQLite)
out1 <- serialize(model1,NULL)
out2 <- serialize(model2,NULL)
out3 <- serialize(model3,NULL)

model4 <- serialize(rnorm(10),NULL)
model5 <- serialize(rnorm(20),NULL)
model6 <- serialize(rnorm(30),NULL)

db <- dbConnect(SQLite(), dbname="Test.sqlite")
dbGetQuery(conn = db, 
            "CREATE TABLE IF NOT EXISTS models 
            (_id INTEGER PRIMARY KEY AUTOINCREMENT, 
            model BLOB)")


test4 <- data.frame(g=I(model4))
test5 <- data.frame(g=I(model5))
test6 <- data.frame(g=I(model6))
dbGetPreparedQuery(db, "INSERT INTO models (model) values (:g)", bind.data=test4)
dbGetPreparedQuery(db, "INSERT INTO models (model) values (:g)", bind.data=test5)
dbGetPreparedQuery(db, "INSERT INTO models (model) values (:g)", bind.data=test6)

dbListTables(db)

p1 = dbGetQuery( db,'select * from models' )

また、この場合、書き込みプロセスは正常に機能しますが、1000kb を超えるファイルでは非常に遅くなります...

4

0 に答える 0