superponer - cómo guardar() con un nombre de variable particular
superponer graficas en r (4)
Estoy aplicando repetidamente una función para leer y procesar un montón de archivos csv. Cada vez que se ejecuta, la función crea un marco de datos ( this.csv.data
) y usa save () para escribirlo en un archivo .RData con un nombre único. El problema es que, más tarde, cuando leí estos archivos .RData usando load (), los nombres de las variables cargadas no son únicos, porque cada uno se carga con el nombre this.csv.data
....
Me gustaría guardarlas con etiquetas únicas para que salgan con un nombre apropiado cuando las cargue (). He creado el siguiente código para ilustrar.
this.csv.data = list(data=c(1:9), unique_tag = "some_unique_tag")
assign(this.csv.data$unique_tag,this.csv.data$data)
# I want to save the data,
# with variable name of <unique_tag>,
# at a file named <unique_tag>.dat
saved_file_name <- paste(this.csv.data$unique_tag,"RData",sep=".")
save(get(this.csv.data$unique_tag), saved_file_name)
pero la última línea vuelve
"Error in save(get(this_unique_tag), file = data_tag) :
object ‘get(this_unique_tag)’ not found"
A pesar de que lo siguiente devuelve los datos muy bien:
get(this.csv.data$unique_tag)
Debería usar saveRDS / readRDS para serializar sus objetos. Guardar y cargar son para salvar entornos enteros.
saveRDS(this.csv.data, saved_file_name)
# later
mydata <- readRDS(saved_file_name)
Mi preferencia es evitar el nombre en el archivo RData en carga:
obj = local(get(load(''myfile.RData'')))
De esta manera, puede cargar varios archivos RData y nombrar los objetos como desee, o almacenarlos en una lista, etc.
Solo nombra los argumentos que usas. Con su código lo siguiente funciona bien:
save(list = this.csv.data$unique_tag, file=saved_file_name)
puedes usar
save.image("myfile.RData")