Чтение текстовых файлов в tidytext и добавление метаданных - PullRequest
0 голосов
/ 02 марта 2019

У меня есть несколько тысяч .txt файлов в каталоге, и я хотел бы прочитать их все в tidytext, где я бы затем добавил столбцы метаданных.Сами имена файлов содержат все метаданные, и я успешно использовал substr для анализа местоположения различных фрагментов, времени, даты и т. Д. Одного файла, но я не могу найти пример того, как я могу продолжить делать это для всехфайлов в каталоге.

Например, у меня есть файлы .txt:

FFTJan141138

FFTJan151136

FFTJan161151

FFTJan171144

Мне удалось прочитать файлы из моего wd в tibble, используя:

tbl <- list.files(pattern = "*.txt") %>% 
map_chr(~ read_file(.)) %>% 
data_frame(text = .)

Мне нужна помощь, чтобы вставить некоторые столбцы данных, которые соответствуют метаданным в именах файлов.

ДляНапример, для первого файла с именем: FFTJan141138 у меня теперь есть тиббл, строка которого для этого файла имеет один столбец для содержимого FFTJan141138.Я хотел бы добавить к этой строке четыре дополнительных столбца, которые включают в себя FFT, JAN, 14 и 1138. Я могу анализировать текст в именах файлов с помощью substr, но не знаю, как это сделать, поскольку данные считываются в tidytext.,Любая помощь будет оценена.

Спасибо.

1 Ответ

0 голосов
/ 03 марта 2019

Я бы немного изменил ваш рабочий процесс, чтобы получить ту информацию, которую вы хотите.Чтобы найти все текстовые файлы в рабочем каталоге, вы можете использовать list.files с аргументом:

all_txts <- list.files(pattern = ".txt$")

Объект all_txts будет тогда символьным вектором, который содержит все ваши имена файлов.

Затем вы можете настроить канал для чтения во всех текстовых файлах и использовать mutate() в map(), чтобы аннотировать каждую строку именем файла, если хотите.

library(tidyverse)

map_df(all_txts, ~ data_frame(txt = read_file(.x)) %>%
        mutate(filename = basename(.x)))
...