Learn R Programming

⚠️There's a newer version (0.2.0) of this package.Take me there.

flow

Visualize as flow diagrams the logic of functions, expressions or scripts and ease debugging.

  • Call flow_view() on a function, a quoted expression, or the path of an R script to visualize it.

  • Call flow_run() on a call to a function to visualize which logical path in the code was taken. Set browse = TRUE to debug your function block by block (similar to base::browser()) as the diagram updates.

  • Export to html, png, jpeg, or pdf.

  • Use the Rstudio addins to run flow_view() or flow_run() on your selection.

  • Document an entire package with flow_doc()

{flow} is built on top of Javier Luraschi’s {nomnoml} package, and Rainer M Krug ’s {plantuml} package, the latter only available from github at the moment (“rkrug/plantuml”).

More on the website : https://moodymudskipper.github.io/flow

Installation

Install with:

remotes::install_github("moodymudskipper/flow")

Example

library(flow)
flow_view(median.default)

There are way too many features to show them all on a README, check the vignette Draw a function for a deeper dive. More vignettes to come!

The following code gives you a taste of the possibilities.

# use plantuml
flow_view(median.default, engine = "plantuml")

# exports (supports png, jpeg, pdf, html)
# shortcuts are available to export to temp file and open
# (often easier to explore there than in the IDE)
flow_view(median.default, out = "png")

# visualize which path was taken (relevant S3 method is presented)
vec <- c(1:3, NA)
flow_run(median(vec, na.rm = TRUE))

# works when code fails too (handy to debug!)
flow_run(median(iris))

# show the number of passes on each edge
flow_run(Reduce(`+`, 1:4), show_passes = TRUE)

# step by step exploration
vec <- c(1:3, NA)
flow_run(median(vec, na.rm = TRUE), browse = TRUE)
# then enter `d` to draw the diagram at the relevant step

# check what path is taken inside of `mean.default` when median is called
flow_debugonce(mean.default)
median(1:4)

Copy Link

Version

Install

install.packages('flow')

Monthly Downloads

389

Version

0.0.1

License

GPL-3

Maintainer

Antoine Fabri

Last Published

June 6th, 2023

Functions in flow (0.0.1)

flow_data

View function as flow chart
flow_debug

Debug With Flow Diagrams
build_nomnoml_code

build nomnoml code from data
flow_draw

Draw Diagram From Debugger
flow_doc

Draw Flow Diagrams for an Entire Package