我在目录中有数千个.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中,因此我不知道该怎么做。任何帮助将不胜感激。
谢谢。
答案 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)))