Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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
在R中使用加载的对象名称_R_Object_Naming - Fatal编程技术网

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

在R中使用加载的对象名称,r,object,naming,R,Object,Naming,我试图将文件夹中的每个数据集加载到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/

我试图将文件夹中的每个数据集加载到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>) }

datNames我建议在单独的环境中加载。然后删除该环境中的每个对象。例如,请参见下面的代码,尽管它对于一个文件来说是通用的。如果需要对包含多个对象的.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) 

}

x我有这个权利吗:运行new.env()会使所有内容在datEnv中的该点之后加载到工作区,而不是全局加载,对吗?这就是为什么删除datEnv中的所有对象不会破坏new.env()之前存在于全局环境中的任何函数或其他对象?几乎,在我上面的代码中,我创建了一个名为datEnv的新环境。在上面的示例中,我显式地将对象加载到该环境中。这并不是说在该点之后加载到工作区的所有内容都在datEnv中。请尝试以下示例:
datEnv