【发布时间】:2015-09-26 14:00:38
【问题描述】:
我有几个data.frames 在我想保存到单独的.RData 文件的环境中。有没有可以保存到整个工作区的功能?
我通常只使用以下函数:
save(x, file = "xy.RData")
但是有没有一种方法可以一次单独保存所有 data.frames?
【问题讨论】:
我有几个data.frames 在我想保存到单独的.RData 文件的环境中。有没有可以保存到整个工作区的功能?
我通常只使用以下函数:
save(x, file = "xy.RData")
但是有没有一种方法可以一次单独保存所有 data.frames?
【问题讨论】:
创建一堆不同的文件并不是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")
【讨论】:
saveRDS存储单个数据帧不是更方便吗?
类似于@MrFlick 的方法,您可以这样做:
invisible({
sapply(ls(envir = .GlobalEnv), function(x) {
obj <- get(x, envir = .GlobalEnv)
if (class(obj) == "data.frame") {
save(obj, file = paste0(x, ".RData"))
}
})
})
【讨论】:
要保存您的工作区,您只需执行以下操作:
save.image("willcontainworkspace.RData")
这会创建一个包含整个工作区的文件,该文件可能是也可能不是您想要的,但您的问题对我来说并不完全清楚。
【讨论】: