Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个.rda文件加载到r中的列表中_R_Save_Purrr_Rda - Fatal编程技术网

将多个.rda文件加载到r中的列表中

将多个.rda文件加载到r中的列表中,r,save,purrr,rda,R,Save,Purrr,Rda,我运行了各种模型(glm、rpart、earth等),并将每个模型对象导出到我计算机上的文件夹中。因此,我现在有一个文件夹,其中有大约60个不同的模型,存储为单独的.rda文件 这是通过创建一个模型函数,然后通过purrr映射包将其应用于模型类型列表来实现的(以避免错误和终止) 现在我想把它们加载回r中,并进行比较。不幸的是,当我编写初始模型脚本时,每个模型都存储为同一个ie“model.Object”(我不知道如何执行其他操作),因此当我尝试将每个模型单独加载到r中时,它们只是相互重叠。每个文

我运行了各种模型(glm、rpart、earth等),并将每个模型对象导出到我计算机上的文件夹中。因此,我现在有一个文件夹,其中有大约60个不同的模型,存储为单独的.rda文件

这是通过创建一个模型函数,然后通过purrr映射包将其应用于模型类型列表来实现的(以避免错误和终止)

现在我想把它们加载回r中,并进行比较。不幸的是,当我编写初始模型脚本时,每个模型都存储为同一个ie“model.Object”(我不知道如何执行其他操作),因此当我尝试将每个模型单独加载到r中时,它们只是相互重叠。每个文件保存为glm.rda、rpart.rda、earth.rda等,但其中的模型标记为model.Object(用于澄清)

所以我想我有几个问题; 1.可以将多个.rda文件加载到r中的一个列表中,然后对该列表进行索引 2.如何更改已应用的模型函数,以便“model.object”名称读取为模型类型(例如glm、rpart等)

代码:


目前,对现有文件的救援操作可能类似于这样(在@nicola关于使用
envir
参数来
load()
的评论之后):


rda2list
.Rda
文件只会将保存的对象恢复到全局环境中。如果您希望在加载对象时能够将其分配给新名称,则应考虑使用
.Rds
文件代替
saveRDS()
。您应该使用
saveRDS
代替前面提到的
save
。如果使用
save
,请查看
load
envir
参数。您可以在单独的环境中还原对象,然后随时将其放置,这样可以避免覆盖。接受答案@Mikko Marttila喜欢这个community@JackFahey-Gilmour实际上看起来你还没有点击“接受”按钮;-)
    Model.Function = function(Model.Type){

  set.seed(0)
  Model.Output = train(x = Pred.Vars.RVC.Data, y = RVC, trControl = Tcontrolparam,
                       preProcess = Preprocessing.Options, tuneLength = 1, metric = "RMSE",
                       method = Model.Type)

    save(Model.Object, file = paste("./RVC Models/",Model.Type,".rda", sep = ""))

  return(Model.Object)

}

Possibly.Model.Function = possibly(Model.Function, otherwise = "something wrong here")

result.possible = map(c("glm","rpart","earth"), Possibly.Model.Function)
rda2list <- function(file) {
  e <- new.env()
  load(file, envir = e)
  as.list(e)
}

folder <- "./RVC Models"
files <- list.files(folder, pattern = ".rda$")

models <- Map(rda2list, file.path(folder, files))
names(models) <- tools::file_path_sans_ext(files)