r语言 - 在单个 RDS 文件中保存多个变量



我想传递一个变量列表来保存RDS((以保存它们的值,但它保存了它们的名称:

variables <- c("A", "B", "C")
saveRDS(variables, "file.R")

它保存了单个向量"变量"。

我也试过:

save(variables, "file.RData")

没有成功

您需要使用save函数的list参数。 例如:

var1 = "foo"
var2 = 2
var3 = list(a="abc", z="xyz")
ls()
save(list=c("var1", "var2", "var3"), file="myvariables.RData")
rm(list=ls())
ls()
load("myvariables.RData")
ls()

请注意,saveRDS函数会创建一个 .RDS 文件,用于保存单个 R 对象。save函数创建一个 .RData 文件(与 .RDA 文件(。 .RData 文件用于存储整个 R 工作区,或将 R 工作区中的任何名称传递给list参数。

YiHui有一篇关于这个话题的很好的博客文章。

如果有多个数据表,并且需要将它们全部保存在单个 R 对象中,则可以使用 saveRDS 路由。 举个例子:

datalist = list(mtcars = mtcars, pressure=pressure)
saveRDS(datalist, "twodatasets.RDS")
rm(list=ls())
datalist = readRDS("twodatasets.RDS")
datalist

另一种选择是将所有变量存储在新环境中,并将其另存为 Rds 文件。然后,可以将此环境的对象移动到全局环境(或将它们保留在原处(。

e <- new.env()
with(e, {
var1 = "foo"
var2 = 2
var3 = list(a="abc", z="xyz")
})
saveRDS(e, "my_obj.Rds")
## new Session
my_obj <- readRDS("my_obj.Rds")
list2env(as.list(my_obj), globalenv())

最新更新