用于分层树形图的Data.tree

问题描述 投票:0回答:1

我正在寻找一个 R 函数来构建此处所示的特定类型的图表。 Data.tree 看起来很有希望,但我被困住了。

我的目标(如图所示)只是一个层次图,显示数据框中不同类别的值的计数,随着你的深入,变得更加具体。它不是决策树或流程图。重要的是,在给定数据框和每个级别中我想要的变量的情况下,将每个类别中的特征计数制成表格。

这是我的数据示例:

tree_data = data.frame(Context = c("urban", "rural", "urban", "urban", "rural", "rural"),
                Lighting = c("daylight", "dark", "dark", "daylight", "daylight", "dark"),
                Driver_age = c("Senior", "Adult", "Adult", "Adult", "Adult", "Senior"))

以及所需的输出:

我已经通过 data.tree 做到了这一点:

tree_data$pathString = paste("crashes",
                             tree_data$Context,
                             tree_data$Lighting,
                             tree_data$Driver_age,
                             sep = "/")

crashes = as.Node(tree_data)
print(crashes)

结果组织得很好,但我不确定如何添加计数,或将其转换为如上所述的视觉格式。

            levelName
1  crashes           
2   ¦--urban         
3   ¦   ¦--daylight  
4   ¦   ¦   ¦--Senior
5   ¦   ¦   °--Adult 
6   ¦   °--dark      
7   ¦       °--Adult 
8   °--rural         
9       ¦--dark      
10      ¦   ¦--Adult 
11      ¦   °--Senior
12      °--daylight  
13          °--Adult 

有人可以建议下一步吗?或者如果有更好的包,我愿意接受。我还尝试了diagrammeR和igraph,但它们看起来不像是我能够轻松应用于不同数据集的解决方案。我需要它是易于重复的东西。

r hierarchical-data
1个回答
0
投票

我们可以使用

vtree
轻松完成此操作,请参阅文档 https://cran.r-project.org/web/packages/vtree/vignettes/vtree.html

这是一个例子:

#install.packages("vtree")

library(vtree)
tree_data = data.frame(Context = c("urban", "rural", "urban", "urban", "rural", "rural"),
                       Lighting = c("daylight", "dark", "dark", "daylight", "daylight", "dark"),
                       Driver_age = c("Senior", "Adult", "Adult", "Adult", "Adult", "Senior"))

vtree(tree_data, c("Context", "Lighting"))

© www.soinside.com 2019 - 2024. All rights reserved.