我问这个问题是因为我认为这对很多人来说将是一个很棒的功能。
我想为我编写的脚本创建一个consort-type图表,使我可以直观地查看通过脚本的数据流。通过数据流,实际上,我的意思是一个数据框如何引向另一个数据框(也许每个数据框的行号都是数字)。
DiagrammeR
允许构建它,但是我是一个相当手动的任务。我认为解决方案包括两个部分,但我不确定是否应该问两个单独的问题。为了避免生气,请在这里询问第一部分。
典型的 diagrammeR 图如下:
nodes <- create_node_df(n=10,
nodes=c("TheOGDReportFinal", "PathDataFrameFinal", "MyOGD","MyPath","FinalDataset","FinalDatasetBarr","BarrettsBxQual2","LastTestsDone","FirstTestsDone","ff"),
label=c(stringr::str_wrap(paste0("TheOGDReportFinal: ",nrow(TheOGDReportFinal)),5),
stringr::str_wrap(paste0("PathDataFrameFinal: ",nrow(PathDataFrameFinal)),5),
stringr::str_wrap(paste0("MyOGD: ",nrow(MyOGD)),5),
stringr::str_wrap(paste0("MyPath:",nrow(MyPath)),5),
stringr::str_wrap(paste0("FinalDataset:",nrow(FinalDataset)),5),
stringr::str_wrap(paste0("FinalDatasetBarr: ",nrow(FinalDatasetBarr)),5),
stringr::str_wrap(paste0("BarrettsBxQual2: ",nrow(BarrettsBxQual2)),5),
stringr::str_wrap(paste0("LastTestsDone: ",nrow(LastTestsDone)),5),
stringr::str_wrap(paste0("FirstTestsDone: ",nrow(FirstTestsDone)),5),
stringr::str_wrap(paste0("ff: ",nrow(ff)),5)),
shape = "rectangle",
fontsize=10)
edges <-
create_edge_df(
from = c(1,2,3,4,5,6,6,6,6),
to = c(3,4,5,5,6,7,8,9,10))
g <- create_graph(nodes_df=nodes,
edges_df=edges)%>%
add_global_graph_attrs(
attr = c("layout", "rankdir", "splines"),
value = c("dot", "TB", "false"),
attr_type = c("graph", "graph", "graph"))
render_graph(g)
第一部分是将所有数据帧名称收集到一个向量中。我想这意味着查询全局环境以查看存在哪些数据框?但是,这样做可能会拾取脚本中不存在的数据帧。那么如何识别脚本中的所有数据框呢?