问题标签 [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.
drake-r-package - bind_plans 和地图转换
是否可以将映射转换与外部计划中描述的分组变量一起使用?
换句话说,这对我有用:
但这不是:
谢谢!
drake-r-package - 创建目标组
假设我有以下计划:
现在我想创建一个包含两个子目标 foo_5、foo_10 和目标 bar 的新目标。我怎样才能做到这一点?我觉得它一定非常简单,但我无法找到解决方案。
谢谢!
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)
并重新设置(像这样)
r - 有没有办法在不使下游目标无效的情况下将 file_in 输入的绝对路径更改为 drake?
对于我的项目,有时需要重组,或者只是更改我的项目数据目录的挂载点(例如 - 升级到 catalina 并且不再能够拥有非标准的子目录/
)。
我注意到,即使输入目录的内容没有改变,将路径前缀更改为公共组件也会使所有目标无效。
有没有办法避免这种情况?
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 有用的建议,我定义了这个函数:
这样就可以了:
r - 有没有一种简单的方法来强制目标是最新的?
我想知道是否有办法使用德雷克强制目标保持最新。我写了一些新函数,现在突然间我所有的目标都过时了。我不知道为什么会这样。现在,我很确定我没有更改以前的功能。最坏的情况是,我添加了评论或空格。我正在运行的分析需要几天时间,我希望避免重新运行整个计划。是否可以告诉德雷克我的目标很好并且没有过时?
谢谢!
drake-r-package - 使用 r_make() 为 drake 使用专用环境
我正在尝试将使用专用环境(而不是全局环境)手册第 12.7.6.5 节中r_make()
的建议调整为与.
我所做的是修改_drake.R
配置脚本如下:
对于任何包、功能和计划。当我跑
我得到:
我错过了什么吗?
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
如上所示创建目标。