在 R 中使用加载的对象名称

Work with loaded object name in R

我正在尝试将一个文件夹中的每个数据集加载到 R 中,运行 它通过一个函数,将输出存储在一个列表中,然后在继续下一个之前将其删除。

datNames <- list.files(path = "/Some/Path/", pattern = "dl2*")
storeList <- vector(mode = "list", length = length(datNames)
for (i in 1:length(datNames) {
  load(file = paste0("/Some/Path/", datNames[i]))
  storeList[[i]] <- foo(<Name of data here>)
  rm(<Name of data here>) }

所以基本上我想做类似上面的事情,但我不知道要为 "Name of data here" 输入什么。感谢您的任何建议。

我建议在单独的环境中加载。然后删除该环境中的每个对象。例如,请参见下面的代码,尽管它可以概括为一个文件。它也可以很容易地修复以循环遍历环境中的所有对象并将它们存储在列表列表中,如果需要具有多个对象的 .R 文件。

x <- rnorm(100)
save(x, file = "env_example.R")
datEnv <- new.env()
datNames <- list.files(pattern = "env_example.R")
storeList <- vector(mode = "list", length = length(datNames))
for (i in 1:length(datNames)) {
  load(file = datNames[i], envir = datEnv)
  storeList[[i]] <- datEnv[[ls(datEnv)[1]]]
  rm(list = ls(envir=datEnv), envir = datEnv) 

}