Learn R Programming

dm (version 0.0.6.9000)

dm: 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 one or multiple tbl objects (tibbles or lazy data objects).

dm_from_src() creates a dm from some or all tables in a src (a database or an environment).

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 validate_dm() to double-check the returned object.

validate_dm() checks the internal consistency of a dm object.

dm_get_src() returns the dplyr source for a dm object. All tables in a dm object must be from the same source, i.e. either they are all data frames, or they all are stored on the same database.

dm_get_con() returns the DBI::DBIConnection for dm objects. This works only if the tables are stored on a database, otherwise an error is thrown.

dm_get_tables() returns a named list of dplyr tbl objects of a dm object. Filtering expressions are NOT evaluated at this stage. To get a filtered table, use dm_apply_filters_to_tbl(), to apply filters to all tables use dm_apply_filters()

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"))

dm_from_src(src = NULL, table_names = NULL)

new_dm(tables = list())

validate_dm(x)

dm_get_src(x)

dm_get_con(x)

dm_get_tables(x)

is_dm(x)

as_dm(x)

Arguments

...

Tables to add to the dm object. If no names are provided, the tables are auto-named.

.name_repair

Options for name repair. Forwarded as repair to vctrs::vec_as_names().

src

A dplyr table source object.

table_names

A character vector of the names of the tables to include.

tables

A named list of the tables (tibble-objects, not names) . to be included in the dm object.

x

An object.

Value

For dm(), dm_from_src(), new_dm(), as_dm(): A dm object.

For validate_dm(): Returns the dm, invisibly, after finishing all checks.

For dm_get_src(): the dplyr source for a dm object.

For dm_get_con(): The DBI::DBIConnection for dm objects.

For dm_get_tables(): A named list with the tables constituting the dm.

For is_dm(): Boolean, is this object a dm.

See Also

Examples

Run this code
# NOT RUN {
library(dplyr)
dm(iris, mtcars)
dm_from_src(dplyr::src_df(pkg = "nycflights13"))
new_dm(list(iris = iris, mtcars = mtcars))
as_dm(list(iris = iris, mtcars = mtcars))

dm_nycflights13() %>% tbl("airports")
dm_nycflights13() %>% src_tbls()
dm_nycflights13() %>% dm_get_src()
# this works only when tables of `dm` are on DB
if (FALSE) {
  copy_dm_to(dbplyr::src_memdb(), dm_nycflights13()) %>%
    dm_get_con()
}
dm_nycflights13() %>% dm_get_tables()
dm_nycflights13() %>% dm_get_filters()
dm_nycflights13() %>% validate_dm()
is_dm(dm_nycflights13())
dm_nycflights13()["airports"]
dm_nycflights13()[["airports"]]
dm_nycflights13()$airports
# }

Run the code above in your browser using DataLab