我有大量的csv文件,这些文件位于不同的文件夹中,以及需要合并到一个文件夹中的文件夹中。如果它们都在一个目录中,那就很容易了,但我不知道有什么简单的方法可以将它们从不同的文件夹中取出。我可以将它们一个接一个地合并,但它们太多了。
例如:
+ working directory
|
+-- · data.csv
+-- · data2.csv
+-- + NewFolder
|
+-- · data3.csv
+-- + NewFolder2
|
+-- · data4.csv
我想要一个文件,结合所有数据csv文件
4条答案
按热度按时间8hhllhi21#
您可以使用
dir()
并将recursive
设置为TRUE
来列出文件夹树中的所有文件,也可以使用pattern
来定义regular expression以筛选.csv
文件。或者更好更简单(感谢speendo的评论):
"解释“
pattern='*.csv$
:pattern
参数必须是筛选文件名的正则表达式。此RegEx筛选出以.csv
结尾的文件名。如果你想过滤以
data
开头的字符串,你应该尝试这样的模式:pattern='^data.*.csv$'
recursive=T
:强制dir()
递归遍历工作目录下的所有文件夹。得到文件列表后,* 并假设所有文件都具有相同的结构 *(即所有文件都具有相同的列),您可以使用
read.csv()
和rbind()
合并它们:Ramnath在他的评论中建议了一种更快的合并
.csv
文件的方法(同样,* 假设所有这些文件都具有相同的结构 *):kmb7vmvb2#
以下是
dplyr
的解决方案vxf3dgd43#
此解决方案假设所有
*.csv
文件具有相同的结构。(未测试)
atmip9wb4#
碱R溶液。