Yes, 杰弗里·B·阿诺德在他的书中解释了这一点R 数据科学:练习解决方案。请参阅下面第 13 章练习 13.3.3 的摘录:
1.OmniGraffle(默认,你从R4DS书中看到的)
R for Data Science 使用数据库模式图来说明表之间的关系。大多数流程图或图表软件以及一些专门的数据库软件都可用于创建数据库模式图。用于数据科学的 R 中的图表是使用以下命令创建的OmniGraffle https://www.gliffy.com/,并且它们的来源可以在其中找到GitHub https://github.com/hadley/r4ds/tree/main/diagrams存储库。
2. 数据模型 https://github.com/bergant/datamodelrR 中的包
绘制数据库模式图的另一个选项是 R 包 datamodelr,它可以以编程方式创建数据库模式图。下面的代码使用datamodelr画了一个关系图Batting
, Master
, and Salaries
tables.
library(datamodelr)
dm1 <- dm_from_data_frames(list(
Batting = Lahman::Batting,
Master = Lahman::Master,
Salaries = Lahman::Salaries
)) %>%
dm_set_key("Batting", c("playerID", "yearID", "stint")) %>%
dm_set_key("Master", "playerID") %>%
dm_set_key("Salaries", c("yearID", "teamID", "playerID")) %>%
dm_add_references(
Batting$playerID == Master$playerID,
Salaries$playerID == Master$playerID
)
dm_create_graph(dm1, rankdir = "LR", columnArrows = TRUE) %>%
dm_render_graph()
你会看见:
参考:https://jrnold.github.io/r4ds-exercise-solutions/relational-data.html#exercise-13.3.3 https://jrnold.github.io/r4ds-exercise-solutions/relational-data.html#exercise-13.3.3