Come convertire un vettore non elaborato in un oggetto R senza scrivere sul disco? Voglio leggere un flusso di dati base64 e convertirlo nella sua rappresentazione dell'oggetto R. Ecco un esempio: come posso recuperare l'oggetto lm
dal vettore raw?Converti il vettore non elaborato nell'oggetto 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
Immagino che possa comprimere _after_ serializzazione e decomprimere _prima_ la deserializzazione. Ma probabilmente vorrai esaminare 'saveRDS()' e 'readRDS()' che sono superiori a 'save()' e 'load()' e _already usano compression_ a meno che non lo spegni. E sì, l'intero argomento è un po 'confuso, ma le funzioni '* RDS()' e le mie (de) funzioni di serializzazione sopra aiutano una buona parte. C'è di più a questo solo 'base64' ... –