Skip to content

Instantly share code, notes, and snippets.

@gshotwell
Created October 3, 2015 14:42
Show Gist options
  • Save gshotwell/351275a7df579f5b9be6 to your computer and use it in GitHub Desktop.
Save gshotwell/351275a7df579f5b9be6 to your computer and use it in GitHub Desktop.
Idea to generate makefile from R dataframe of file dependencies, also produce dependency diagram.
library(dplyr)
library(DiagrammeR)
files <- list.files(recursive = TRUE)
file_df <- data_frame(files = files,
type = tools::file_ext(files))
file_df <- filter(file_df, type != "")
file_df$shape <- ifelse(file_df$type %in% c("R", "Rmd"), "circle", "square")
dependencies <- data_frame(
file = file_df$files,
pre_req = c("NULL", "mtcars.csv", "mtcars.RData",
"NULL", "NULL", "analysis/file1.R",
"analysis/file2.R" , "NULL")
)
dependencies <- filter(dependencies, pre_req != "NULL")
nodes <-
create_nodes(nodes = file_df$files,
shape = file_df$shape)
edges <-
create_edges(from = dependencies$pre_req,
to = dependencies$file,
relationship = "leading to")
graph <-
create_graph(nodes_df = nodes,
edges_df = edges,
graph_attrs = "layout = circo",
node_attrs = )
render_graph(graph)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment