Скрипт для блок-схемы в R - PullRequest
1 голос
/ 23 мая 2019

Я обычно пишу модульные скрипты с несколькими функциями.Когда дела растут, трудно отследить, какие вызовы функций (назвать их как 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)
}

Я хотел бы получить что-то вроде этого

enter image description here

Который может быть сгенерирован в 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.

...