To add a dimension table to a multistar
object, we must indicate the name
that we give to the dimension, the tibble
that contains the data and the
name of the attribute corresponding to the table primary key.
Usage
add_dimension(
ms,
dimension_name = NULL,
dimension_table = NULL,
dimension_key = NULL,
fact_name = NULL,
fact_key = NULL,
key_as_data = FALSE
)
# S3 method for class 'multistar'
add_dimension(
ms,
dimension_name = NULL,
dimension_table = NULL,
dimension_key = NULL,
fact_name = NULL,
fact_key = NULL,
key_as_data = FALSE
)
Arguments
- ms
A
multistar
object.- dimension_name
A string, name of dimension table.
- dimension_table
A
tibble
, dimension table.- dimension_key
A string, name of the dimension primary key.
- fact_name
A string, name of fact table.
- fact_key
A string, name of the dimension foreign key.
- key_as_data
A boolean, define the primary key as an attribute of the dimension accessible in queries?
Details
We cannot add a dimension without defining a correspondence with one of the
multistar
's fact tables. We have to define the name of the fact table and
the name of its foreign key. The referential integrity of the instances of
the facts is checked.
The attribute that is used as the primary key will no longer be accessible
for queries (its function is considered to be exclusively related to facts).
If you want to use it for queries, it must be explicitly indicated by the
boolean parameter key_as_data
.
See also
Other multistar functions:
add_facts()
,
multistar()
,
relate_dimension()
Examples
ms <- multistar() |>
add_facts(
fact_name = "mrs_age",
fact_table = mrs_fact_age,
measures = "n_deaths",
nrow_agg = "count"
) |>
add_facts(
fact_name = "mrs_cause",
fact_table = mrs_fact_cause,
measures = c("pneumonia_and_influenza_deaths", "other_deaths"),
nrow_agg = "nrow_agg"
) |>
add_dimension(
dimension_name = "where",
dimension_table = mrs_where,
dimension_key = "where_pk",
fact_name = "mrs_age",
fact_key = "where_fk"
) |>
add_dimension(
dimension_name = "when",
dimension_table = mrs_when,
dimension_key = "when_pk",
fact_name = "mrs_age",
fact_key = "when_fk",
key_as_data = TRUE
) |>
add_dimension(
dimension_name = "who",
dimension_table = mrs_who,
dimension_key = "who_pk",
fact_name = "mrs_age",
fact_key = "who_fk"
)