[英]How to relate a drake dynamic subtarget to the actual dataframe / source target?
drake
手册给出了以下使用动态子目标的示例:
https://books.ropensci.org/drake/dynamic.html#dynamic-transformations
library(gapminder)
library(drake)
plan <- drake_plan(
subset = head(gapminder),
row = target(subset, dynamic = map(subset))
)
make(plan)
#> ▶ target subset
#> ▶ dynamic row
#> > subtarget row_9939cae3
#> > subtarget row_e8047114
#> > subtarget row_2ef3db10
#> > subtarget row_f9171bbe
#> > subtarget row_7d6002e9
#> > subtarget row_509468b3
#> ■ finalize row
由reprex 包(v0.3.0) 于 2020 年 9 月 2 日创建
现在假设由于某种原因,一个或多个这些子目标失败,例如row_9939cae3
。 我想调查其原因,为此我需要知道输入目标函数的确切参数。 我如何获得该数据的副本?
我在这里先向您的帮助表示感谢。
标记
不幸的是, drake
并没有让这变得容易,但这是可能的。 我建议对失败的子目标使用交互式调试器。 例如,假设row_f9171bbe
失败。 在您的自定义函数之一中,您可以使用cancel_if()
和id_chr()
直接跳转到row_f9171bbe
,然后立即运行browser()
。
library(gapminder)
library(drake)
f <- function(x) {
cancel_if(id_chr() != "row_f9171bbe")
browser()
x
}
plan <- drake_plan(
subset = head(gapminder),
row = target(f(subset), dynamic = map(subset))
)
make(plan, targets = "row")
#> ▶ target subset
#> ▶ dynamic row
#> > subtarget row_9939cae3
#> ■ cancel row_9939cae3
#> > subtarget row_e8047114
#> ■ cancel row_e8047114
#> > subtarget row_2ef3db10
#> ■ cancel row_2ef3db10
#> > subtarget row_f9171bbe
#> Called from: f(subset)
Browse[1]> print(x)
#> # A tibble: 1 x 6
#> country continent year lifeExp pop gdpPercap
#> <fct> <fct> <int> <dbl> <int> <dbl>
#> 1 Afghanistan Asia 1967 34.0 11537966 836.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.