首页> 疑难解答

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

withpy 2021-06-25

简介我在目录中有几千个.txt文件,并希望将它们全部读入tidytext,然后我将添加元数据列。文件名本身包含所有元数据,我......

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

例如,我有.txt文件:

FFTJan141138

FFTJan151136

FFTJan161151

FFTJan171144

我已经使用以下方法管理从我的wd读取文件到一个tibble:

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

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

例如,对于名为:FFTJan141138的第一个文件,我现在有一个tibble,该文件的行有一列用于FFTJan141138的内容。我想在这一行添加四个额外的列,包括FFT,JAN,14和1138.我可以使用substr解析文件名中的文本,但是不知道如何执行此操作,因为数据被读入tidytext 。任何帮助,将不胜感激。

谢谢。

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)))

相关文章