graph_join_plan {rquery} | R Documentation |
Build a draw-able specification of the join diagram
Description
Please see vignette('DependencySorting', package = 'rquery')
and vignette('joinController', package= 'rquery')
for more details.
Usage
graph_join_plan(columnJoinPlan, ..., groupByKeys = TRUE, graphOpts = NULL)
Arguments
columnJoinPlan |
join plan |
... |
force later arguments to bind by name |
groupByKeys |
logical if true build key-equivalent sub-graphs |
graphOpts |
options for graphViz |
Value
grViz diagram spec
See Also
describe_tables
, build_join_plan
, actualize_join_plan
Examples
if (requireNamespace("DBI", quietly = TRUE) && requireNamespace("RSQLite", quietly = TRUE)) {
# note: employeeanddate is likely built as a cross-product
# join of an employee table and set of dates of interest
# before getting to the join controller step. We call
# such a table "row control" or "experimental design."
my_db <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
RSQLite::initExtension(my_db)
tDesc <- example_employee_date(my_db)
# fix order by hand, please see rquery::topo_sort_tables for
# how to automate this.
ord <- match(c('employeeanddate', 'orgtable', 'activity', 'revenue'),
tDesc$tableName)
tDesc <- tDesc[ord, , drop=FALSE]
columnJoinPlan <- build_join_plan(tDesc, check= FALSE)
# unify keys
columnJoinPlan$resultColumn[columnJoinPlan$resultColumn=='id'] <- 'eid'
# look at plan defects
print(paste('problems:',
inspect_join_plan(tDesc, columnJoinPlan)))
diagramSpec <- graph_join_plan(columnJoinPlan)
# # to render as JavaScript:
# if(requireNamespace("DiagrammeR", quietly = TRUE)) {
# print(DiagrammeR::grViz(diagramSpec))
# }
DBI::dbDisconnect(my_db)
my_db <- NULL
}
[Package rquery version 1.4.99 Index]