最终目标是使用 pdftools 包有效地浏览一千页 pdf 文档,以一致、安全地生成可用的数据框/标题。我尝试使用 tabulizer 包和 pdf_text 函数,但结果不一致。因此,开始研究pdf_data()我更喜欢的功能。
对于那些不熟悉 pdf_data 函数的人来说,它将 pdf 页面转换为坐标网格,0,0 坐标位于页面的左上角。因此,通过排列 x,y 坐标,然后将文档旋转为宽格式,所有信息都会像在页面上一样显示,只有 NA 表示空白
这是一个使用熟悉的 mtcars 数据集的简单示例。
library(pdftools)
library(tidyverse)
library(janitor)
pdf_file <- "https://github.com/ropensci/tabulizer/raw/master/inst/examples/data.pdf"
mtcars_pdf_df <- pdf_data(pdf_file)[[1]]
mtcars_pdf_df%>%
arrange(x, y)%>%
pivot_wider(id_cols = y, names_from = x, values_from = text)%>%
unite(col = Car_type, `154`:`215`, sep = " ", remove = TRUE, na.rm = TRUE)%>%
arrange(y)%>%
rename("Page Number" = `303`)%>%
unite(col = mpg, `253`:`254`, sep = "", remove = TRUE, na.rm = TRUE)%>%
unite(col = cyl, …Run Code Online (Sandbox Code Playgroud) 这有点复杂,但我认为其他人也可能遇到这个问题。
\nQuarto 很棒,但遇到了一个问题,即一个函数 ( quarto_render) 无法在通过 .bat / .cmd 文件访问的脚本中呈现文档。如果我从 RStudio IDE 运行 R 脚本,没有问题,但通过 .bat 访问,是的。已经能够重现该问题,我将尝试概述该问题并希望有人能够提供解决方法。
不幸的是,重新创建需要一些时间,因为需要三个文件(我正在处理的实际项目使用五个单独的文件)。我正在使用的源项目文件夹名为 Test,直到文件 3 为止它才真正发挥作用。
\n文件 1 - test_document.qmd
\n创建一个新的 .qmd 文档(我称之为我的test_document.qmd)。设置为 html 输出,并保留默认的 YAML 和其他文本。无需修改。
文件 2 - test_script.R
\n创建一个新脚本 ( test_script.R)。通过以下方式...
library(quarto)\nlibrary(here)\n\nquarto_render(here("test_document.qmd"))\nRun Code Online (Sandbox Code Playgroud)\n运行时,这应该将 Test_document.qmd 呈现为文件位置中的单独 html 文件。
\n文件 3 - test.cmd - (这是开始出现问题的地方)
\n当扩展名更改为 .bat 时,文本文件 (.txt) 应在命令提示符中呈现。.cmd 文件中使用的代码附在下面,但必须编辑部分,因为它是基于工作的。
\n文件夹开始位置为“C:\\Temp\\Test”
\n{.cmd file}\ncd /d %~dp0 \nif exist …Run Code Online (Sandbox Code Playgroud)