我正在寻找一个 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,但它们看起来不像是我能够轻松应用于不同数据集的解决方案。我需要它是易于重复的东西。
我们可以使用
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"))