我正在阅读并将一大组csv表组合到R中,但在合并它们之前,我想创建一个列,其中包含这些特定行集所属的文件名。
以下是我编写的用于读取文件列表的代码示例:
archivos <- list.files("proyecciones", full.names = T)
#proyecciones is the folder where all the csv files are located.
tbl <- lapply(archivos, read.table, sep="", head = T) %>% bind_rows()
正如您所看到的,我已经在“archivos”中拥有了文件的名称,但仍然无法弄清楚如何将其放入lapply命令中。
谢谢!
我们需要在.id
中使用bind_rows
lapply(archivos, read.table, sep="", header = TRUE) %>%
set_names(archivos) %>%
bind_rows(.id = 'grp')
一个更加整洁的语法
library(tidyverse)
map(archivos, read.table, sep='', header = TRUE) %>%
setnames(archivos) %>%
bind_rows(.id = 'grp')