代码之家  ›  专栏  ›  技术社区  ›  Anonymous coward

如何将officer::read\u docx应用于整个文件夹

  •  0
  • Anonymous coward  · 技术社区  · 6 年前

    我正在尝试扫描许多文档,目的是将文本重新组织为标准格式。这涉及使用 docxtractr ,并使用 textreadr ,或使用 officer::docx_summary 为正文和表格文本添加标签,以便于操作。对于这个问题,我使用 officer::read_docx 官员::docx\u摘要 . 我使用的测试文档是 .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 回复  |  直到 6 年前
        1
  •  1
  •   David Gohel    6 年前

    officer::docx_summary 用于返回的对象 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)) )