我正在尝试使用drake
R 包来处理跨多个计划的多个文件输入,因此我可以迭代地构建我的目标,测试每个阶段的工作原理。下面是一个简单的代表,显示了我想要完成的事情。官方文档展示了如何在一个计划中做这种事情,但我的困难是我想跨过多个计划执行此操作。
我无法弄清楚转换应该是什么才能将正确的输入名称(来自read_in_plan
的目标)放入munge_plan
library(drake)
dplyr_version_dep = pkg_description = utils::packageDescription('dplyr')
munge_data = function(input){
message("I did something!")
}
file_inputs = c("file1.csv", "file2.csv")
# get my data in
read_in_plan = drake_plan(
# make the plan dependent on changes to dplyr
pkg = utils::packageDescription('dplyr'),
data = target(
read.csv(input),
transform = map(input = !!file_inputs)
)
)
read_in_plan
#> # A tibble: 3 x 2
#> target command
#> <chr> <expr>
#> 1 pkg utils::packageDescription("dplyr")
#> 2 data_file1.csv read.csv("file1.csv")
#> 3 data_file2.csv read.csv("file2.csv")
# now do something to each of those targets
munge_plan = drake_plan(
munged = munge_data(data_file1.csv)
)
munge_plan
#> # A tibble: 1 x 2
#> target command
#> <chr> <expr>
#> 1 munged munge_data(data_file1.csv)
# but really I want to do munge data on all of the
# data_file1.csv
# data_file2.csv
# munge_data_proper = drake_plan(
# munged = target(
# # some kind of transform here
# )
# )
full_plan = bind_plans(read_in_plan,
munge_plan)
# make(full_plan)
由reprex 包(v0.2.1)于 2019 年 5 月 23 日创建