Jak przekonwertować surowy wektor z powrotem na obiekt R bez zapisu na dysku? Chcę odczytać strumień danych base64 i przekonwertować go na reprezentację obiektu R. Oto przykład - jak odzyskać obiekt lm
z surowego wektora?Konwertuj wektor surowy na obiekt 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
Chyba mogę skompresować _after_ serializacji i rozpakować _przed deserializacją. Ale prawdopodobnie chcesz zajrzeć do 'saveRDS()' i 'readRDS()', które są lepsze od 'save()' i 'load()' i _already use compression_, chyba że go wyłączysz. I tak, cały temat jest nieco mylący, ale funkcje '* RDS()' oraz moje funkcje (seryjne) serializacji (de) pomagają w dobrym kawałku. Jest w tym coś więcej niż tylko "base64" ... –