`knitr_out、`file_out` 和 `vis_drake_graph` 在 R:drake 中的用法
`knitr_out, `file_out` and `vis_drake_graph` usage in R:drake
我正在尝试了解如何在 drake
中正确使用 knitr_out
、file_out
和 vis_drake_graph
。
我有两个问题。
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()
显示为图表中的蓝色方块。
两个项目都使用 markdown 中的 drake::loadd(....)
从缓存中获取对象。
vis_drake_graph
中是否有一些代码可以在图形变得繁忙时删除这些方块?
Q2:file_out
个对象在 vis_drake_graph
有没有办法在 vis_drake_graph
中将 file_out
对象本身显示为 circles/squares?
Q3:包出现在 vis_drake_graph
有没有办法避免 vis_drake_graph
显式打印包? (基本上任何带有 ::
的东西)
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
它们应该出现,除非您在 vis_drake_graph()
中设置 show_output_files = FALSE
。
Q3
不,但如果有什么安慰的话,我确实对在 drake
中完全跟踪命名空间函数和对象的决定感到遗憾。 drake
的方法对于跟踪包裹来说根本不是最优的,我 plan to get rid of it if there ever comes time for a round of breaking changes。否则,除了 vis_drake_graph(targets_only = TRUE)
之外,没有其他方法可以摆脱它,这也摆脱了图中的所有导入。
我正在尝试了解如何在 drake
中正确使用 knitr_out
、file_out
和 vis_drake_graph
。
我有两个问题。
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()
显示为图表中的蓝色方块。
两个项目都使用 markdown 中的 drake::loadd(....)
从缓存中获取对象。
vis_drake_graph
中是否有一些代码可以在图形变得繁忙时删除这些方块?
Q2:file_out
个对象在 vis_drake_graph
有没有办法在 vis_drake_graph
中将 file_out
对象本身显示为 circles/squares?
Q3:包出现在 vis_drake_graph
有没有办法避免 vis_drake_graph
显式打印包? (基本上任何带有 ::
的东西)
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
它们应该出现,除非您在 vis_drake_graph()
中设置 show_output_files = FALSE
。
Q3
不,但如果有什么安慰的话,我确实对在 drake
中完全跟踪命名空间函数和对象的决定感到遗憾。 drake
的方法对于跟踪包裹来说根本不是最优的,我 plan to get rid of it if there ever comes time for a round of breaking changes。否则,除了 vis_drake_graph(targets_only = TRUE)
之外,没有其他方法可以摆脱它,这也摆脱了图中的所有导入。