我正在寻找一个R函数来构建这里所示的特定类型的图表.Data.tree看起来很有前途,但我被困住了.

我的目标(如图所示)只是一个层次 struct 图,显示数据帧中不同类别的值的计数,越往下越具体.它不是决策树,也不是流程图.重要的是,在给定数据帧和我想要的每个级别的变量的情况下,将列出每个类别中的功能计数.

下面是我数据的一个示例:

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"))

和所需的输出:

enter image description here

树:树:树我已经用数据走到了这一步.

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 

有人能给出下一步的建议吗?或者,如果有更好的方案,我对此持开放态度.我还try 了图表工具和图形工具,但它们似乎不像是我能够轻松应用于不同数据集的解决方案.我需要这是一个容易重复的东西.

推荐答案

我们可以使用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"))

enter image description here

R相关问答推荐

更改网格的crs以匹配简单要素点对象的crs

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

查找具有平局的多个列的最大值并返回列名或平局 destruct 者NA值

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

ggplot的轴标签保存在officer中时被剪切

修改用R编写的用户定义函数

gganimate在使用shadow_mark选项时不保留所有过go 的标记

使用across,starts_with和ifelse语句变更多个变量

DEN扩展包中的RECT树形图出现异常行为

R中边际效应包中Logistic回归的交互作用风险比

按多列统计频次

如何在R中平滑地绘制线图(不拟合)?

当我添加美学时,geom_point未对齐

如何在ggplot2中创建多个y轴(每个变量一个)

将具有坐标列表列的三角形转换为多个多边形

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

将列的值乘以在不同数据集中找到的值

用满足特定列匹配的另一行替换NA行

GOGPLATE geom_boxploy色彩疯狂

将某个阈值以下的列中的值分类到不同的列中,否则保持该列的原样