如何将officer :: read_docx应用于整个文件夹

时间:2018-02-22 17:22:34

标签: r loops lapply docx officer

我正在尝试扫描许多文档,目的是将文本重新组织为标准格式。这涉及使用docxtractr提取表格,使用textreadr单独提取正文文本,或使用officer::docx_summary标记正文和表格文本以便于操作。对于此问题,我使用officer::read_docxofficer::docx_summary。我使用的测试文档是.docx,并且在包含文本和数字的表格之前和之后包含无意义文本。

我的代码是:

dir <- "C:/path/to/documents"
filenames <- list.files(path = dir, pattern = "*.docx", full.names = TRUE)
docxtest <- officer::docx_summary(lapply(filenames, officer::read_docx))

理想情况下,它会生成包含docx_summary信息的数据框列表。我尝试在文件名列表中使用lapply,但输出列表在尝试查看时出错:

Error in names[[i]]: subscript out of bounds.

1 个答案:

答案 0 :(得分:1)

officer::read_docx用于filenames <- list.files(path = dir, pattern = "*.docx", full.names = TRUE) docxtest <- lapply(filenames, function(x) officer::docx_summary(officer::read_docx(x)) ) 返回的对象,它不支持列表...

<mat-accordion [multi]="true">