我需要将R语言环境中的项目保存到硬盘上。我不知道为什么以下代码无法正常工作:
op <- function(){
for(i in 1:length(ls())){
file <- paste0(ls()[i],".Rds")
saveRDS(file,file)
}
}
op <- function(){
obj_names <- ls(.GlobalEnv)
for(i in 1:length(obj_names){
file <- paste0(obj_names[i],".Rds")
saveRDS(get(obj_names[i], envir = .GlobalEnv), file)
}
}
op <- function()
sapply(ls(.GlobalEnv), function(x) saveRDS(get(x, envir = .GlobalEnv), paste0(x, ".Rds"))
如果您不介意将所有对象保存在一个文件中,那么save
函数可能会很有用。更多信息请参见?save
你编写的代码只保存了一个与函数环境中名称相同的文件列表(即单个文件“i.rds”)。
如果你想将环境内容保存到文件中,可以尝试使用save()
或save.image()
函数,它们正好可以实现你要寻找的功能。
有关信息,请尝试?save
。以下是一些代码:
a <- 1
b <- 2
save(list=ls(), file="myfile.rda")
rm(list=ls())
load(file="myfile.rda")
ls()
返回:
[1] "a" "b"
file
是一个字符串(包括你在末尾粘贴的.Rds
),因此你告诉saveRDS
保存存储在file
中的字符串(而不是该名称对象减去.Rds
部分)。 - Gregor Thomas