【发布时间】:2018-08-03 19:07:23
【问题描述】:
我正在尝试将 csv 文件读入 R 中的数据框。我已经设法循环浏览已定义的文件夹,读取 csv 文件并分配它们以创建具有名称的数据框。但是,如果数据框已经存在,我似乎无法附加数据。如果数据框已经存在,我想在底部附加新数据,而不仅仅是替换整个内容。
这是我迄今为止的工作:
fileName <- list.files("\\path\\subfolder", "*csv", full.names = FALSE)
fileName <- gsub(".csv", "", fileName)
for (i in 1:length(testPath)) {
tempVar <- read.csv(testPath[i])
assign(fileName[i], tempVar)
}
这只会循环一个文件夹,我知道如何让它循环多个文件夹。但是,当我两次运行此代码时,它不会将数据附加到数据帧,而是从 csv 再次创建它们
感谢您的帮助!
更新:我想通了,见下文
【问题讨论】:
-
在这个广为流传的副本中有很多选择(尽管您应该避免使用
assign的任何解决方案):stackoverflow.com/q/11433432/324364 -
嗨,这篇文章是我用作上述代码基础的文章。但是,它在遍历不同的文件夹时不会将任何数据附加到现有数据帧。还尝试了使用 list2env(lapply())) 的更新方法,如果我多次运行代码,我无法获取要附加的数据
-
那里的解决方案没有以最清晰的方式组织,但其中许多使用
do.call(rbind,...)或dplyr::bind_rows或 data.table 中的等效项来执行您想要的操作。都在那里,你只需要仔细而缓慢地阅读,因为,正如我所说,它的组织不够干净。 -
那里,我在那里编辑了第一个答案,这可能是你真正冒险的唯一一个。希望它现在为您指明一个更有帮助的方向。
-
@robs:这可能也有帮助 stackoverflow.com/a/48105838/786542