inst/doc/howto-dm-theory.R

## ----setup, include = FALSE----------------------------------------------
source("setup/setup.R")

## ------------------------------------------------------------------------
#  library(dm)
#  library(nycflights13)
#  
#  nycflights13_df <-
#    flights %>%
#    left_join(airlines, by = "carrier") %>%
#    left_join(planes, by = "tailnum") %>%
#    left_join(airports, by = c("origin" = "faa")) %>%
#    left_join(weather, by = c("origin", "time_hour"))
#  
#  nycflights13_df

## ----warning=FALSE, message=FALSE----------------------------------------
#  dm <- dm_nycflights13(cycle = TRUE)
#  
#  dm %>%
#    dm_draw()

## ------------------------------------------------------------------------
#  object.size(dm)
#  
#  object.size(nycflights13_df)

## ------------------------------------------------------------------------
#  dm %>%
#    dm_get_all_pks()

## ------------------------------------------------------------------------
#  dm %>%
#    dm_enum_pk_candidates(airports)

## ------------------------------------------------------------------------
#  dm %>%
#    dm_enum_fk_candidates(flights, airlines)

## ------------------------------------------------------------------------
#  dm %>%
#    dm_get_all_fks()

## ------------------------------------------------------------------------
#  dm %>%
#    dm_examine_constraints()

## ------------------------------------------------------------------------
#  #  Update in one single location...
#  airlines[airlines$carrier == "UA", "name"] <- "United broke my guitar"
#  
#  airlines %>%
#    filter(carrier == "UA")
#  
#  # ...propagates to all related records
#  flights %>%
#    left_join(airlines) %>%
#    select(flight, name)

## ------------------------------------------------------------------------
#  planes %>%
#    decompose_table(model_id, model, manufacturer, type, engines, seats, speed)

## ------------------------------------------------------------------------
#  con_sqlite <- DBI::dbConnect(RSQLite::SQLite())
#  con_sqlite
#  DBI::dbListTables(con_sqlite)
#  
#  copy_dm_to(con_sqlite, dm)
#  DBI::dbListTables(con_sqlite)

## ------------------------------------------------------------------------
#  dm_from_con(con_sqlite)

## ----disconnect----------------------------------------------------------
#  DBI::dbDisconnect(con_sqlite)

Try the dm package in your browser

Any scripts or data that you put into this service are public.

dm documentation built on Nov. 2, 2023, 6:07 p.m.