【问题标题】:How visualise use of datasets within a script in R如何在 R 中可视化脚本中数据集的使用
【发布时间】:2016-03-19 00:14:31
【问题描述】:

这更多是关于如何组织长 R 脚本的问题。我在 R 中有很多很长的脚本。我经常发现自己处于导入一个原始数据集的情况,然后我可能会从中创建其他数据集,等等,这些数据集用于分析的不同方面。所以基本上原始数据集被分支以创建其他数据集。对于长脚本,可能很难理解不同分支的起源。有没有人有任何技术来处理这个问题,即如何获得数据集如何相互派生的概述。也许是某种可视化工具?

【问题讨论】:

  • 你读过thisthis SO answer。我想你的答案已经涵盖了。
  • 我真的在问如何可视化数据集而不是组织代码
  • 我认为这是一个很好的问题!
  • 我的错。我回答帮助得到它。

标签: r


【解决方案1】:

使用DiagrammeR,可以逐步构建流程图,并在需要时使用render_graph 进行渲染。但是,如果不勤奋,它可能会变得有点笨拙,如下面的一个简单示例所示。

library(DiagrammeR)
# Create an empty graph
graph <- create_graph()

#create simple data frame of individuals of random ages
df<-data.frame(id=1:100,age=rnorm(100,40,5))
head(df)
# Add a node for df, df$id, and df$age
graph <- add_node(graph, node = "df")
graph <- add_node(graph, node = "df$age")
graph <- add_node(graph, node = "df$id")

# Vector of breaks for cut
breaks <- c(0,seq(20,60,by=5),Inf)
# Add a node for breaks
graph <- add_node(graph,node = "breaks")

# Create df.cut data frame of age intervals
df.cut <- data.frame(id = df$id,
                     interval = cut(df$age,breaks = breaks))

# Add nodes for df.cut, data.frame, cut
# Use a different node shape for operations
graph <- add_node(graph, 
                  node = "df.cut")
graph <- add_node(graph, 
                  node = "data.frame", 
                  shape = "square")
graph <- add_node(graph, 
                  node = "cut", 
                  shape = "square")

# Add edges for df$id, df$age
# Use different arrowhead to indicate operation
graph <- add_edges(graph,
                   create_edges(
                     from = c("df","df"),
                     to = c("df$id","df$age"),
                     rel = "to_get",
                     arrowhead = "box")
)

# Add edges for cut 
graph <- add_edges(graph, 
                   from = c("df$age", "breaks", "cut"),
                   to = c("cut", "cut", "df.cut"),
                   rel = c("to_get","to_get", "to_get"))

# Add edges for data.frame
graph <- add_edges(graph, 
                   from = c("df$id", "cut", "data.frame"),
                   to = c("data.frame", "data.frame", "df.cut"),
                   rel = c("to_get","to_get", "to_get"))

render_graph(graph)

【讨论】:

  • 嗯。不错。我想我必须有选择地避免代码膨胀。我想理想情况下我正在寻找一些东西来提取数据集并将它们链接起来。也许让我这样做会更好。不确定。
猜你喜欢
  • 2015-08-07
  • 2015-02-15
  • 2018-09-07
  • 1970-01-01
  • 2018-07-29
  • 2014-07-08
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
相关资源
最近更新 更多