我正在努力理解如何在knitr_out、file_out和vis_drake_graph中正确地使用drake。
我有两个问题。
Q1:使用knitr_out和file_out创建markdown报表
虽然这样的代码对我的一个较小的项目是正确的:
make_hyp_data_aggregated_report <- function() {
render(
input = knitr_in("rmd/hyptest-is-data-being-aggregated.Rmd"),
output_file = file_out("~/projectname/reports/01-hyp-test.html"),
quiet = TRUE
)
}
plan <- drake_plan(
...
...
hyp_data_aggregated_report = make_hyp_data_aggregated_report()
...
...
)

在我的大型项目(使用~10+报告)中,完全类似的代码不能完全正常工作。也就是说,在构建报表时,knitr_in对象不会被显示为图形中的蓝色方块,在我的大型项目中使用drake::vis_drake_graph()。
两个项目都使用标记内的drake::loadd(....)从缓存中获取对象。
在vis_drake_graph中有一些代码可以在图形繁忙时删除这些方块吗?
Q2:vis_drake_graph中的file_out对象
是否有一种方法可以将file_out对象本身显示为vis_drake_graph中的圆圈/方块
Q3:显示在vis_drake_graph中的包
是否有办法避免vis_drake_graph显式打印包?(基本上所有与::有关的内容)

发布于 2019-09-28 01:48:02
Q1
每个文本文件路径都需要自己的knitr_in()或file_out()。如果您有一个带有一个knitr_in()的函数,即使您多次使用该函数,这仍然只能算作一个文件路径。我建议在计划级别编写这些关键字。
plan <- drake_plan(
r1 = render(knitr_in("report1.Rmd"), output_file = file_out("report1.html")),
r2 = render(knitr_in("report2.Rmd"), output_file = file_out("report2.html")),
r3 = render(knitr_in("report3.Rmd"), output_file = file_out("report3.html"))
)Q2
除非在show_output_files = FALSE中设置vis_drake_graph(),否则它们应该出现。
Q3
没有,但如果这是安慰的话,我很遗憾决定在drake中跟踪命名空间函数和对象。drake的方法从根本上说是跟踪包的次优方法,而I 如果有机会进行一轮彻底的改变,计划把它处理掉。,否则,除了vis_drake_graph(targets_only = TRUE)之外,就没有办法摆脱它,因为vis_drake_graph(targets_only = TRUE)也处理掉了图中的所有导入。
https://stackoverflow.com/questions/58140942
复制相似问题