I am trying to save RData/RDS File Dynamically with expression String, something that looks like this:
rdata_saver <- function(target="rdata-one", obj_name=c(), rdata_name=c(), directory=""){
if(target=="all"){
save.image(file=paste0(directory, rdata_name, ".RData"))
}
else if(target=="many"){
for(a in 1:length(obj_name)){
save(eval(parse(text=obj_name[a]), envir = environment()), file=paste0(directory, rdata_name[a], ".RData"))
}
}
else if(target=="rdata-one"){
if(length(obj_name)==1){
save(eval(parse(text=obj_name), envir = environment()), file=paste0(directory, rdata_name, ".RData"))
}
}
else if(target=="rds-one"){
saveRDS(eval(parse(text=obj_name), envir = environment()), file=paste0(directory, rdata_name[a], ".rds"))
}
}
and then make some dummy Data Frame:
a <- data.frame(x=seq(1,200,1), y=rnorm(200))
b <- data.frame(x=seq(1,500,1), y=rnorm(500))
c <- data.frame(x=seq(1,300,1), y=rnorm(300))
but it seems like it doesnt work expectedly, the save object parameter seems like to treat a whole expression as an object name rather than "evaluate it first"
rdata_saver(target="rdata-one", obj_name="a", "test_data", "C:/Users/User/Downloads/")
Error in save(eval(parse(text = obj_name)), file = paste0(directory, rdata_name, :
object ‘eval(parse(text = obj_name))’ not found
Does this mean it isn't possible to save RData from expressions? or at least with dynamic approach?