r - 如何在 R drake 中动态生成目标转换的参数?
问题描述
我想生成一个大计划,其参数取决于先前计算的目标。这有可能吗?
具体来说,我需要一些类似的东西:
drake_plan(
data = get_data(),
lots_of_sds = get_sds_from_a_complex_pipeline()
analysis = target(
fun(data, mean = mean_val, sd = sd_val),
transform = cross(mean_val = c(2, 5), sd_val = !!lots_of_sds)
)
)
问题是尝试这个(或类似的变体)失败,因为lots_of_sds
尚未定义,因此转换无法扩展计划。
过去有没有人遇到过类似的情况?有什么想法/解决方法吗?
谢谢!我正在使用德雷克 7.0.0 和 R 版本 3.5.3
解决方案
你快到了。您只需在lots_of_sds
外部预先定义drake_plan()
,这是您使用时的标准程序!!
。
library(drake)
lots_of_sds <- c(1, 2)
drake_plan(
data = get_data(),
analysis = target(
fun(data, mean = mean_val, sd = sd_val),
transform = cross(mean_val = c(2, 5), sd_val = !!lots_of_sds)
)
)
#> # A tibble: 5 x 2
#> target command
#> <chr> <expr>
#> 1 data get_data()
#> 2 analysis_2_1 fun(data, mean = 2, sd = 1)
#> 3 analysis_5_1 fun(data, mean = 5, sd = 1)
#> 4 analysis_2_2 fun(data, mean = 2, sd = 2)
#> 5 analysis_5_2 fun(data, mean = 5, sd = 2)
由reprex 包(v0.2.1)于 2019 年 5 月 16 日创建
在您运行或lots_of_sds
之前需要已经存在的值。这种限制将很难克服:https ://github.com/ropensci/drake/issues/685 。drake_plan()
make()
drake
推荐阅读
- inno-setup - 如何使用 Inno Setup 中的附加下载大小更新 Windows 控制面板/设置应用程序中显示的应用程序大小
- security - 保存通过 Stripe 存储用户银行信息的方法
- typoscript - TYPO3 10.4.x:获取实际语言 Uid 的打字稿
- animation - 在三元运算符中使用时 AnimatePresence 和 motion.div 不起作用
- c# - 为什么会出现这样的错误统一货币化
- sql - 如何检测 SQL 重复值
- awk - 当 awk $n 参数以 z 结尾时是什么意思?
- ruby-on-rails - Docker - 调用后端不起作用 - 即使 app/api 在同一个网络上
- c++ - 析构函数真的会破坏内存还是只是在对象的生命周期结束之前运行?
- python - 为什么我只有一种方式得到循环导入错误?