首页 > 解决方案 > 使用来自文件名的变量创建数据框

问题描述

tldr:我想创建一个包含文档中某些单词出现次数的数据框,然后可视化它们随时间的变化,但在此过程中我丢失了必要的变量。

文本文件以包含许多关于它们的数据的格式严格命名:“000-yyyy-mmdd-AAA-00-00-AA.txt”(0 代表数字,As 代表字母)。我使用“readtext”将其用作文档变量。

 files <- readtext(
"all_files.zip",
  docvarsfrom = "filenames",
  dvsep = "-",
  docvarnames = c("var1", "year", "daymonth", "var2", "var3", "var4", "var5"),
)

由此,我用下面的代码计算特定术语,取自另一个问题但是,在某个地方我丢失了文档变量:我只得到带有数字的整个文件名,同时我至少需要 year 变量来对它们进行排序。我尝试了几种方法,例如获取文件名,将年份部分正则表达式取出并作为列插入并尝试更改几个设置和包,但作为初学者,我找不到解决方案。我猜我可能在标记化过程中丢失了数据,但我不确定。你能给我一个建议吗,我该怎么办?

以下软件包在我的会话中处于活动状态:

library(readr)
library(readtext)
library(dplyr)
library(lubridate)
library(stringr)
library(quanteda)
library(quanteda.textmodels)
library(quanteda.textstats)
library(purrr)
library(ggplot2)
library(tidytext)


files_toks <- tokens(files)

mydict <- c("apple", "pear")

dfmat <- tokens(files_toks) %>%
  tokens_select(mydict) %>%
  dfm()

convert(dfmat, to = "data.frame")

dfmat 数据框如下所示:

                          doc_id  apple  pear
1 001-yyyy-mmdd-AAA-00-00-AA.txt      3     1
2 002-yyyy-mmdd-AAA-00-00-AA.txt      2     5
...

标签: rtext-mining

解决方案


推荐阅读