生ベクターをディスクに書き込まずにRオブジェクトに戻す方法を教えてください。私は、base64データのストリームを読み込んで、それをRオブジェクト表現に変換したいと考えています。ここに例があります - lm
オブジェクトを生ベクターからどのように戻すのですか?私はその場でこれらの変換を行うために(最初はRhpcパッケージに借りベースRコードに基づいています)RApiSerializeパッケージを使用して、私のRcppRedisパッケージ内生ベクターをRオブジェクトに変換する
## some rdata -- writes to temp file!
mod <- lm(mpg ~ cyl, data=mtcars)
f1 <- tempfile()
save(mod, file=f1, compress="bzip2")
library(base64enc)
r1 <- readBin(f1, "raw", n=file.info(f1)[1, "size"])
r2 <- base64decode(base64encode(file(f1, "rb"))) # emulate input base64
identical(r1, r2)
## I can get mod back by writing to file and loading, but how to just
## load from a raw vector?
rm(mod) # get rid of mod
f2 <- tempfile()
writeBin(r2, f2)
load(f2) # mod is back
私は、_after_直列化を圧縮し、_前回の逆直列化を解凍できると思います。しかし、 'save()'と 'load()'よりも優れた 'saveRDS()'と 'readRDS()'を見て、それをオフにしない限りcompression_を使用していると思います。そして、はい、全体の話題は少し混乱しますが、上記の(*)RDS()関数と上の直列化関数は良いチャンクを助けます。これには 'base64'だけがあります... –