dm {dm} | R Documentation |
Data model class
Description
The dm
class holds a list of tables and their relationships.
It is inspired by datamodelr,
and extends the idea by offering operations to access the data in the tables.
dm()
creates a dm
object from tbl objects
(tibbles or lazy data objects).
new_dm()
is a low-level constructor that creates a new dm
object.
If called without arguments, it will create an empty
dm
.If called with arguments, no validation checks will be made to ascertain that the inputs are of the expected class and internally consistent; use
dm_validate()
to double-check the returned object.
is_dm()
returns TRUE
if the input is of class dm
.
as_dm()
coerces objects to the dm
class
Usage
dm(
...,
.name_repair = c("check_unique", "unique", "universal", "minimal"),
.quiet = FALSE
)
new_dm(tables = list())
is_dm(x)
as_dm(x, ...)
Arguments
... |
Tables or existing |
.name_repair , .quiet |
Options for name repair.
Forwarded as |
tables |
A named list of the tables (tibble-objects, not names),
to be included in the |
x |
An object. |
Value
For dm()
, new_dm()
, as_dm()
: A dm
object.
For is_dm()
: A scalar logical, TRUE
if is this object is a dm
.
See Also
-
dm_from_con()
for connecting to all tables in a database and importing the primary and foreign keys -
dm_get_tables()
for returning a list of tables -
dm_add_pk()
anddm_add_fk()
for adding primary and foreign keys -
copy_dm_to()
for DB interaction -
dm_draw()
for visualization -
dm_flatten_to_tbl()
for flattening -
dm_filter()
for filtering -
dm_select_tbl()
for creating adm
with only a subset of the tables -
dm_nycflights13()
for creating an exampledm
object -
decompose_table()
for table surgery -
check_key()
andcheck_subset()
for checking for key properties -
examine_cardinality()
for checking the cardinality of the relation between two tables
Examples
dm(trees, mtcars)
new_dm(list(trees = trees, mtcars = mtcars))
as_dm(list(trees = trees, mtcars = mtcars))
is_dm(dm_nycflights13())
dm_nycflights13()$airports
dm_nycflights13()["airports"]
dm_nycflights13()[["airports"]]
dm_nycflights13() %>% names()
library(dm)
library(nycflights13)
# using `data.frame` objects
new_dm(tibble::lst(weather, airports))
# using `dm_keyed_tbl` objects
dm <- dm_nycflights13()
y1 <- dm$planes %>%
mutate() %>%
select(everything())
y2 <- dm$flights %>%
left_join(dm$airlines, by = "carrier")
new_dm(list("tbl1" = y1, "tbl2" = y2))