gpt4 book ai didi

r - 如何合并 R 中嵌套文件夹中的 csv 文件

转载 作者:行者123 更新时间:2023-12-02 06:33:37 25 4
gpt4 key购买 nike

我有一大堆 csv 文件,它们位于不同的文件夹中,并且位于我需要合并到一个文件中的文件夹中的文件夹中。如果它们都在一个目录中会很容易,但我不知道有一种简单的方法可以将它们全部拉出不同的文件夹。我可以将它们一一组合起来,但它们有很多。

例如:

+ working directory
|
+-- · data.csv
+-- · data2.csv
+-- + NewFolder
|
+-- · data3.csv
+-- + NewFolder2
|
+-- · data4.csv

我想要一个包含所有数据 csv 文件的文件

最佳答案

您可以使用 dir()recursive 设置为 TRUE 以列出文件夹树中的所有文件,您可以使用 pattern 定义 regular expression过滤 .csv 文件。一个例子:

csv_files <- dir(pattern='.*[.]csv', recursive = T)

或者更好更简单(感谢 speendo 的评论):

csv_files <- dir(pattern='*.csv$', recursive = T)

解释。

  • pattern='*.csv$:pattern参数必须是过滤文件名的正则表达式。此 RegEx 过滤掉以 .csv.

    结尾的文件名如果您想过滤以 data 开头的内容,您应该尝试这样的模式:pattern='^data.*.csv$'

  • recursive=T:强制 dir() 递归遍历工作目录下的所有文件夹。

获得文件列表后,并假设所有文件都具有相同的结构(即所有文件都具有相同的列),您可以使用 read.csv() 合并它们rbind():

for(i in 1:length(csv_files)) {
if(i == 1)
df <- read.csv(csv_files[i])
else
df <- rdbind(df, read.csv(csv_files[i]))
}

Ramnath 在他的评论中提出了一种合并 .csv 文件的更快方法(同样,假设所有文件都具有相同的结构):

library(dplyr)
df <- rbind_all(lapply(csv_files, read_csv))

关于r - 如何合并 R 中嵌套文件夹中的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26181122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com