我通常会编写带有多个功能的模块化脚本。当事情发展时,很难跟踪哪个函数调用(将它们命名为01-first.R
02-second.R
并不总是可能的,我宁愿不使用它作为最终解决方案)。
下面是一个可能的script.R
的示例,该示例将在一个助手的帮助下运行3个“主要”功能。
first <- function(...){
# do data things
return(first_output)
}
second <- function(first_output){
# do data things
# call helper
x <- helper(...)
# do things to x
return(second_output)
}
third <- function(second_output){
# do data things
return(result)
}
我很想得到像这样的东西
这可以使用diagrammeR
包在R中生成。
grViz("
digraph boxes_and_circles {
# a 'graph' statement
graph [overlap = true, fontsize = 10]
# several 'node' statements
node [shape = box,
fontname = Helvetica]
first; second; helper; third;
# several 'edge' statements
first->second second->helper
helper -> second
second->third
third -> result
}
")
(函数调用其他函数)会很棒。真正令人敬畏的是一种根据参数显示分叉类型的方法(例如,默认情况下,first
具有go_to_third=FALSE
,但是如果go_to_third=TRUE
会直接跳转到{{1 }})。具有函数要处理的对象类也将很棒。
我已经检查了这个问题Visualizing R Function Dependencies 我想知道是否有更好的方法来做到这一点,在视觉上更好。
这个问题类似于MATLAB Automatically generating a diagram of function calls in MATLAB中的这个问题,我可以接受R外部使用GraphViz的破解。
答案 0 :(得分:1)
不完全是你想要的,但我一直在研究一个库来使 dplyr 管道可视化:
https://github.com/terminological/dtrackr
它可以或多或少地做您想做的事,但在更精细的级别上。我将不胜感激,因为仍处于实验阶段。