Я обычно пишу модульные скрипты с несколькими функциями.Когда дела растут, трудно отследить, какие вызовы функций (назвать их как 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)
}
Я хотел бы получить что-то вроде этого
Который может быть сгенерирован в R с использованием пакета diagrammeR
.
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
, то он сразу переходит к third
).Наличие классов объектов, с которыми имеют дело функции, также было бы замечательно.
Я проверил этот вопрос Визуализация зависимостей функций R , и мне интересно, есть ли лучшие способы сделать этовизуально лучше.
Этот вопрос похож на этот вопрос в MATLAB Автоматическая генерация диаграммы вызовов функций в MATLAB , и я согласен с хаком, использующим GraphViz извне R.