问题标签 [drake-r-package]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18 浏览

drake-r-package - bind_plans 和地图转换

是否可以将映射转换与外部计划中描述的分组变量一起使用?

换句话说,这对我有用:

但这不是:

谢谢!

0 投票
1 回答
41 浏览

drake-r-package - 创建目标组

假设我有以下计划:

现在我想创建一个包含两个子目标 foo_5、foo_10 和目标 bar 的新目标。我怎样才能做到这一点?我觉得它一定非常简单,但我无法找到解决方案。

谢谢!

0 投票
0 回答
244 浏览

r - 使用 {data.table} 自定义 {drake} 计划

我的目标是定制 {drake} 计划,以减少简单和复杂情况下的代码重复,例如,drake::trigger根据计划的特定条件设置多个目标(即通过检测目标名称以编程方式识别要设置的目标)在查询 Web API 或其他更复杂的情况时以 (data) _raw 结尾)。为简洁起见,此处未显示 * 以编程方式识别目标的各个方面,下面的代码仅使用手动输入的列名称。我更喜欢使用 {data.table} 来操作计划,而不是 {dplyr}。

例如,有没有办法drake::trigger为多个目标设置?还是有更好的方法来完成工作?

我在下面提出了一个简单的解决方案,即使用熟悉的data.frame 样式方法手动操作 drake 计划。简化版的 reprex

reprex 包(v0.3.0)于 2019 年 12 月 6 日创建

my_plan $command的名称是必需的吗?{drake} 在内部使用它们吗?我有三个选项,我应该选择哪些选项?

  • 忽视
  • names(my_plan$command) <- my_plan$target
  • 保存command_names <- names(my_plan$command)并重新设置(像这样)
0 投票
1 回答
222 浏览

r - 使用 Drake for Rmd 时出现“目标文件丢失”错误

今天一直在学习如何使用 Drake,并设法迁移了我的代码,但还没有迁移我的 R markdown 报告。该报告编译得很好,并产生了预期的输出,但也给出了这个错误,没有多少搜索可以阐明。

来自德雷克的错误消息

我正在使用r_make()推荐的命令,到目前为止我的计划是:

该 Rmd 文件以以下内容开头

我很乐意根据需要附加更多内容,但希望这足以了解为什么我会收到此错误?

0 投票
1 回答
237 浏览

r - 德雷克功能中的进度条

我正在尝试在函数中实现进度条以用于 drake-r 项目。我正在使用 progress_bar R6 类的进度包。以下示例生成预期的进度条:

如果我把它放到我的德雷克工作流程中,每次迭代都会显示一个新的进度条:

控制台输出: 在此处输入图像描述

如何修改函数以仅显示一个在每次迭代时更新的进度条?

0 投票
1 回答
184 浏览

r - 有没有办法在不使下游目标无效的情况下将 file_in 输入的绝对路径更改为 drake?

对于我的项目,有时需要重组,或者只是更改我的项目数据目录的挂载点(例如 - 升级到 catalina 并且不再能够拥有非标准的子目录/)。

我注意到,即使输入目录的内容没有改变,将路径前缀更改为公共组件也会使所有目标无效。

有没有办法避免这种情况?

0 投票
1 回答
103 浏览

r - 在 drake 中使用 code_to_plan 和 target(..., format = "fst")

我真的很喜欢code_to_plan在构建德雷克计划时使用该功能。我也真的target(..., format = "fst")用于大文件。但是,我正在努力将这两个工作流程结合起来。例如,如果我有这个_drake.R文件:

这在调用时工作正常r_make(r_args = list(show = TRUE))

据我了解,它target只能在drake_plan. 如果我尝试这样的事情:

我收到这样的r_make错误:

fst::write_fst(x = value$value, path = tmp) 中的目标 full_plan 错误:在列中发现未知类型。另外:警告消息:您为目标 full_plan 选择了 fst 格式,因此 drake 会将其从类 c("drake_plan", "tbl_df", "tbl", "data.frame") 转换为纯数据帧。

错误:--> 正在处理 18712

查看.Last.error.trace堆栈跟踪。

所以最终我的问题是,当您使用时,在哪里为目标指定特殊数据格式code_to_plan

编辑

使用@landau 有用的建议,我定义了这个函数:

这样就可以了:

0 投票
0 回答
70 浏览

r - 有没有一种简单的方法来强制目标是最新的?

我想知道是否有办法使用德雷克强制目标保持最新。我写了一些新函数,现在突然间我所有的目标都过时了。我不知道为什么会这样。现在,我很确定我没有更改以前的功能。最坏的情况是,我添加了评论或空格。我正在运行的分析需要几天时间,我希望避免重新运行整个计划。是否可以告诉德雷克我的目标很好并且没有过时?

谢谢!

0 投票
1 回答
194 浏览

drake-r-package - 使用 r_make() 为 drake 使用专用环境

我正在尝试将使用专用环境(而不是全局环境)手册第 12.7.6.5 节中r_make()的建议调整为与.

我所做的是修改_drake.R配置脚本如下:

对于任何包、功能和计划。当我跑

我得到:

我错过了什么吗?

0 投票
1 回答
459 浏览

r - R {drake}计划:将许多数据集读入单个目标

我开始将 {drake} 用于数据生产管道。我使用的原始数据非常大,分为大约 130 个单独的(Stata)文件。因此,每个文件都应该单独处理。为了保持可读性,我使用target(),transform()map()指定我的计划。这看起来类似于下面的代码:

所以当我make()计划时,我收到以下错误:

目标 dfs_dta_paths

警告:目标 dfs_dta_paths 警告:

条件的长度 > 1 并且只使用第一个元素

条件的长度 > 1 并且只使用第一个元素

条件的长度 > 1 并且只使用第一个元素

dfs_dta_paths 失败

错误:目标dfs_dta_paths失败。来电询问diagnose(dfs_dta_paths)详情。错误信息:

期望单个字符串值:[type=character; 范围=129]。

根据我从这个警告和错误消息中了解到的情况,不同文件路径的映射不起作用,完整的向量被传递给第一个函数调用。我阅读了https://books.ropensci.org/drake/static.html#map但它无助于解决问题。将路径向量转换为列表也无济于事。

如何在不组合数据集的情况下将多个德雷克目标组合成一个交叉目标?我得到了预定义网格的想法,它实际上按建议工作。但是因为我只需要一个向量,而不是一个复杂的网格,这对我来说看起来像是过度设计。

我觉得我错过了一些明显的东西,但我无法发现它。任何想法我的代码有什么问题?


我知道https://books.ropensci.org/drake/plans.html#how-to-choose-good-targets,但由于我想在数据清理过程中进行迭代,我认为这会有所帮助dfs如上所示创建目标。