将文本文件读入tidytext并添加元数据

时间:2019-03-01 21:28:53

标签: tidytext

我在目录中有数千个.txt文件,想将它们全部读入tidytext,然后在其中添加元数据列。文件名本身包含所有元数据,并且我已经成功地使用substr解析了一个文件的不同位置,时间,日期等,但是我找不到如何继续对所有文件执行此操作的示例。目录中的文件。

例如,我有.txt文件:

FFTJan141138

FFTJan151136

FFTJan161151

FFTJan171144

我已经设法使用以下方法将wd中的文件读为小标题:

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

我需要帮助的是在文件名中插入一些与元数据相对应的数据列。

例如,对于第一个文件:FFTJan141138 现在,我有了一个小标题,该文件的行其中一列表示FFTJan141138的内容。我想在此行中增加四列,其中包括FFT,JAN,14和1138。 我可以使用substr解析文件名中的文本,但是由于将数据读入tidytext中,因此我不知道该怎么做。任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

我会稍作调整,以获取所需的信息。要查找工作目录中的所有文本文件,可以使用带参数的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)))