我正在尝试将文件夹中的每个数据集加载到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>) }
所以基本上我想做上面这样的事情,但我不知道该把什么放在“数据名称”这里。感谢您的任何建议。
答案 0 :(得分:2)
我建议在单独的环境中加载。然后删除该环境中的每个对象。请参阅下面的代码,例如,虽然它可以推广到一个文件。它也可以很容易地修复以循环遍历环境中的所有对象,并将它们存储在列表列表中(如果需要具有多个对象的.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)
}