Вы можете создать вектор имен файлов, основанный на «сайтах» с той же длиной, что и tbl, а затем объединить их с помощью cbind

я есть несколько CSV-файлов в нескольких каталогах, которые я хочу прочитать в R Tribble или Data.table. Я использую «list.files ()» с рекурсивным аргументом, установленным в «ИСТИНА», чтобы создать список имен файлов и путей, затем использую «lapply ()» для чтения в нескольких файлах CSV, а затем «bind_rows ()» вставляю их всех все вместе:

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

Этот подход работает отлично. Однако мне нужно извлечь подстроку из каждого имени файла и добавить ее в качестве столбца в итоговую таблицу. Я могу получить нужную подстроку с помощью "str_extract ()" следующим образом:

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

Однако я застрял на том, как добавить извлеченную подстроку в виде столбца, поскольку lapply () проходит через read_csv () для каждого файла.

Ответы на вопрос(1)

Ваш ответ на вопрос