对的,这是可能的.
至于如何实现,请参阅以下步骤
脚步
步骤1
对于从R连接到PostgreSQL数据库,有各种机制,包括
RPostgreSQL中的步骤1的示例如下:
library(RPostgreSQL)
## loads the PostgreSQL driver
drv <- dbDriver("PostgreSQL")
## Open a connection
con <- dbConnect(drv, dbname="databasename")
Run Code Online (Sandbox Code Playgroud)
第2步
这可以通过几种方式完成.它可以直接在SQL中完成,也可以使用
RPostgreSQL的dbListTables和dbListFields或两者的组合.
例如,SQL用于查询数据库中的所有表,或表中的所有字段/列或表中的所有约束,请参阅以下StackOverflow答案
总之,您只需查询information_schema.tables,information_schema.columns和information_schema.table_constraints即可获得所需信息.如果速度是一个问题(在上面的链接答案中提到它们),您可以使用PostgreSQL特定表而不是ANSI SQL标准表,但它们可能会随时间而变化.
这里的步骤是
RPostgreSQL中的步骤2的示例如下:
调整您的SQL以适应.
第1部分
获取表格列表
使用内置功能
tables1 <- dbListTables(con)
Run Code Online (Sandbox Code Playgroud)
使用SQL
tables2 <- dbGetQuery(con, "select table_name from information_schema.tables")
Run Code Online (Sandbox Code Playgroud)
第2部分
使用内置功能
您将使用dbListFields(con,"TableName"),并应用于表的先前数据帧.了解如何将函数应用于R中矩阵(或数据帧)的每一行或将函数应用于R 中数据框中的每一行,并将结果保存到变量中.
使用SQL
columns2 <- dbGetQuery(con, "select table_name,column_name from information_schema.columns")
Run Code Online (Sandbox Code Playgroud)
第3部分
使用SQL
constraints <- dbGetQuery(con, "select table_name,constraint_name, constraint_type from information_schema.table_constraints")
Run Code Online (Sandbox Code Playgroud)
第3步
从步骤2开始,您应该有表列表,表列表及其关联的字段/列,表列表及其相关约束.
您需要输出要使用的CityPlot的csv文件,或GraphViz的点文件,或者igraph的图形格式或数据框或散列,以便使用使用网格或图表绘制表格和它们之间的连接的函数进行处理.
如果要将它们组合到单个数据帧中,则子集和合并将非常有用.
第4步
该步骤也可以以许多不同方式完成.这些包括但不限于
如果使用图表,形状或网格包,您将迭代表列表,或散列或其他数据结构,并在每个表上应用绘图函数,然后有一个单独的函数,应用于每个约束绘制线条.
参考
| 归档时间: |
|
| 查看次数: |
2450 次 |
| 最近记录: |