相关疑难解决方法(0)

在读取和绑定多个文件时,将"filename"列添加到表中

我在多个目录中有许多csv文件,我想读入R tribble或data.table.我使用"list.files()"并将递归参数设置为TRUE来创建文件名和路径列表,然后使用"lapply()"读入多个csv文件,然后"bind_rows()"将它们全部粘在一起一起:

filenames <- list.files(path, full.names = TRUE, pattern = fileptrn, recursive = TRUE)
tbl <- lapply(filenames, read_csv) %>% 
  bind_rows()
Run Code Online (Sandbox Code Playgroud)

这种方法很好.但是,我需要从每个文件名中提取一个子字符串,并将其作为列添加到最终表中.我可以使用"str_extract()"得到我需要的子字符串,如下所示:

sites <- str_extract(filenames, "[A-Z]{2}-[A-Za-z0-9]{3}")
Run Code Online (Sandbox Code Playgroud)

然而,我被困在如何将提取的子字符串添加为列,因为lapply()通过read_csv()为每个文件运行.

r lapply

5
推荐指数
3
解决办法
3749
查看次数

读取目录中的所有 csv 文件并将每个文件的名称添加到新列中

我有这段代码可以读取目录中的所有 CSV 文件。

nm <- list.files()

df <- do.call(rbind, lapply(nm, function(x) read_delim(x,';',col_names = T)))
Run Code Online (Sandbox Code Playgroud)

我想以将文件名附加到数据的方式修改它。结果将是一个包含所有 CSV 文件的单个数据框,并且在数据框中,有一列指定数据来自哪个文件。怎么做?

csv r readr

4
推荐指数
1
解决办法
1940
查看次数

标签 统计

r ×2

csv ×1

lapply ×1

readr ×1