读取目录中带有目标的所有文件,并在添加新文件时重新运行

问题描述 投票:0回答:1

每个月都会将一个新的 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文件相当多,而且过程很耗时,我不想每次都重新阅读所有文件。

我注意到了这两个问题,但解决方案对我的情况不起作用。

使用 R 目标将新数据附加到现有数据

当我有多个数据文件时应该如何使用{targets}

r target
1个回答
0
投票

从{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"
  )
)
© www.soinside.com 2019 - 2024. All rights reserved.