R: 将工作空间中的所有 data.frames 保存到单独的 .RData 文件
R: Save all data.frames in workspace to separate .RData files
我在一个环境中有几个 data.frames
,我想将它们保存到单独的 .RData 文件中。有没有可以保存到整个工作区的功能?
我通常只使用以下函数来执行此操作:
save(x, file = "xy.RData")
但是有什么方法可以一次单独保存所有 data.frames 吗?
要保存您的工作区,您只需执行以下操作:
save.image("willcontainworkspace.RData")
这会创建一个包含整个工作区的文件,它可能是您想要的,也可能不是您想要的,但您的问题对我来说并不完全清楚。
创建一堆不同的文件并不是 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")
类似于@MrFlick 的方法,您可以这样做:
invisible({
sapply(ls(envir = .GlobalEnv), function(x) {
obj <- get(x, envir = .GlobalEnv)
if (class(obj) == "data.frame") {
save(obj, file = paste0(x, ".RData"))
}
})
})
我在一个环境中有几个 data.frames
,我想将它们保存到单独的 .RData 文件中。有没有可以保存到整个工作区的功能?
我通常只使用以下函数来执行此操作:
save(x, file = "xy.RData")
但是有什么方法可以一次单独保存所有 data.frames 吗?
要保存您的工作区,您只需执行以下操作:
save.image("willcontainworkspace.RData")
这会创建一个包含整个工作区的文件,它可能是您想要的,也可能不是您想要的,但您的问题对我来说并不完全清楚。
创建一堆不同的文件并不是 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")
类似于@MrFlick 的方法,您可以这样做:
invisible({
sapply(ls(envir = .GlobalEnv), function(x) {
obj <- get(x, envir = .GlobalEnv)
if (class(obj) == "data.frame") {
save(obj, file = paste0(x, ".RData"))
}
})
})