嗨,我是drake
R 包的新手,想听听一些关于使用子任务管理大型项目的最佳实践的意见。我的项目的简化结构有两个部分:1)数据清理和 2)建模。它们是级联的,因为我先进行数据清理,然后在开始建模部分时很少返回。
我认为手册建议的方法是:
source("functions_1.R") # for plan_1
plan1 <- drake_plan(
# many middle steps to create
foo = some_function()
foo_1 = fn_1(foo)
foo_2 = fn_2(foo_1)
for_analysis = data_cleaning_fn()
)
plan2 <- drake_plan(
# I would like to use the target name foo_1 again, but not the same object as they were defined in plan1.
# What I want:
# foo_1 = fn_new_1(for_analysis) # this is different from above defined
# result = model_fn(for_1)
# What I actually did
foo_new_1 = fn_new_1(for_analysis) # I have to define a new name different from foo_1
result = model_fn(foo_new_1)
)
fullplan <- bind_plans(plan1,plan2)
make(fullplan)
我在上述工作流程中遇到的一个问题是我为 定义了很多中间目标plan1
,但它们在plan2
.
- 有没有一种方法可以让我拥有一个“干净的命名空间”,
plan2
这样我就可以摆脱无用的名称foo_1
等foo_2
?这样我就可以在plan2
. 我只想保留的plan_2
是for_analysis
. - 有没有办法可以使用
functions_1.R
仅在 for 中定义的函数和仅在 for中plan1
定义的函数?我想每次都使用一组较小的函数。functions_2.R
plan2
十分感谢!