Rstudio 中的简单 ERD

cod*_*boy 5 r graphviz rstudio diagrammer

除了 graphviz 和/或 DiagrammeR 之外,有没有人知道在 Rstudio 中创建实体关系图(ERD)的简单方法。我不经常使用graphviz,而且经常需要比我想记住它的语法更多的时间来创建一个简单的图形。

我想创建一些类似于 Hadley Wickham 在他的“ R for Data Science ”中关于关系数据一章的内容。具体图可以看这里

注意:我不知道这个数字是否实际上是在 R 中完成的。我只是喜欢布局,并希望能够在 Rstudio 中轻松重现类似的内容。

Gra*_*_NZ 2

是的,Jeffrey B. Arnold在他的《R for Data Science:Exercise Solutions》一书中解释了这一点。请参阅下面第 13 章练习 13.3.3 的摘录:

1.OmniGraffle(默认,你从R4DS书上看到的)

R for Data Science 使用数据库模式图来说明表之间的关系。大多数流程图或图表软件以及一些专门的数据库软件都可用于创建数据库模式图。R for Data Science 中的图表是使用OmniGraffle创建的,其来源可以在其GitHub存储库中找到。

2.R中的datamodelr

绘制数据库模式图的另一个选项是 R 包 datamodelr,它可以以编程方式创建数据库模式图。以下代码使用 datamodelr 绘制BattingMaster、 和Salaries表之间的关系图。

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()
Run Code Online (Sandbox Code Playgroud)

你会看见:

在此输入图像描述

参考:https://jrnold.github.io/r4ds-exercise-solutions/relational-data.html#exercise-13.3.3