每个月都会将一个新的 pdf 文件添加到特定目录。我正在尝试使用
R
在 targets
中构建数据管道,以从这些文件中提取一些信息。
list(
tar_target(
"data_path",
list.files(path = "dir", full.names = T)
)
,
tar_target(
"data_pdf_raw",
read_pdf(data_path),
pattern = map(data_path)
)
,
tar_target(
"data_pdf_clean",
clead_pdf(data_pdf_raw[[1]]),
pattern = map(data_pdf_raw)
)
,
tar_target(
"data_to_sql",
data_to_sql(data_pdf_clean)
)
)
问题是
targets
跳过data_path
即使你在目录中添加了新文件。我在format = "file"
中尝试过data_path
,但没有成功。我还尝试添加一个新目标,如下面的帖子中所述。
tar_target(paths2, list_path, format = "file", pattern = map(data_path)),
由于pdf文件相当多,而且过程很耗时,我不想每次都重新阅读所有文件。
我注意到了这两个问题,但解决方案对我的情况不起作用。
从{targets}用户手册(在这里找到:https://books.ropensci.org/targets/dynamic.html)我想出了如何在包
tar_files()
中的tarchetypes
的帮助下解决我的问题和format = "feather"
。
list(
tar_files(
"data_path",
list.files(path = "dir", full.names = T)
)
,
tar_target(
"data_pdf_raw",
read_pdf(data_path),
pattern = map(data_path),
format = "feather"
)
)