我在一个环境中有几个data.frames
,我想保存到单独的.RData文件中。是否有能够保存到整个工作区的功能?
我通常只使用以下功能执行此操作:
save(x, file = "xy.RData")
但有没有办法可以一次性保存所有data.frames?
答案 0 :(得分:8)
创建一堆不同的文件并不是save()
的矢量化方式。在这里使用循环可能更好。首先,获取所有data.frame名称的向量。
dfs<-Filter(function(x) is.data.frame(get(x)) , ls())
现在将每个文件写入文件。
for(d in dfs) {
save(list=d, file=paste0(d, ".RData"))
}
或者如果您只想将它们全部放在一个文件中
save(list=dfs, file="alldfs.RData")
答案 1 :(得分:1)
要保存工作区,您只需执行以下操作:
save.image("willcontainworkspace.RData")
这会创建一个包含整个工作区的文件,这个文件可能是您想要的,也可能不是您想要的,但我的问题并不完全清楚。
答案 2 :(得分:0)
与@ MrFlick的方法类似,你可以这样做:
invisible({
sapply(ls(envir = .GlobalEnv), function(x) {
obj <- get(x, envir = .GlobalEnv)
if (class(obj) == "data.frame") {
save(obj, file = paste0(x, ".RData"))
}
})
})