Comprehensive data integration function for teal applications
Source: R/teal_data-constructor.R, R/teal_data-extract.R
teal_data.RdArguments
- ...
any number of objects (presumably data objects) provided as
name = valuepairs.- join_keys
(
join_keysor singlejoin_key_set) optional object with datasets column names used for joining. If empty then no joins between pairs of objects.- code
-
(
character,language) optional code to reproduce the datasets provided in.... Note this code is not executed and theteal_datamay not be reproducibleUse
verify()to verify code reproducibility. - x
(
teal_data)- names
(
character) names of objects included inteal_subsetto subset
Details
A teal_data is meant to be used for reproducibility purposes. The class inherits from
teal.code::qenv and we encourage to get familiar with teal.code first.
teal_data has following characteristics:
It inherits from the environment and methods such as
$,get(),ls(),as.list(),parent.env()work out of the box.teal_datais a locked environment, and data modification is only possible through theteal.code::eval_code()andwithin.qenv()functions.It stores metadata about the code used to create the data (see
get_code()).It supports slicing (see
teal.code::subset-qenv)Is immutable which means that each code evaluation does not modify the original
teal_dataenvironment directly.It maintains information about relationships between datasets (see
join_keys()).
Subsetting
x[names] subsets objects in teal_data environment and limit the code to the necessary needed to build limited
objects.
Examples
teal_data(x1 = iris, x2 = mtcars)
#> ✖ unverified teal_data object
#> <environment: 0x55be9b3f7510> 🔒
#> Parent: <environment: devtools_shims>
#> Bindings:
#> - x1: [data.frame]
#> - x2: [data.frame]
# Subsetting
data <- teal_data()
data <- eval_code(data, "a <- 1;b<-2")
data["a"]
#> ✅︎ verified teal_data object
#> <environment: 0x55be9fa69c80> 🔒
#> Parent: <environment: devtools_shims>
#> Bindings:
#> - a: [numeric]
data[c("a", "b")]
#> ✅︎ verified teal_data object
#> <environment: 0x55be9f5e1c10> 🔒
#> Parent: <environment: devtools_shims>
#> Bindings:
#> - a: [numeric]
#> - b: [numeric]
join_keys(data) <- join_keys(join_key("a", "b", "x"))
join_keys(data["a"]) # should show empty keys
#> An empty join_keys object.
join_keys(data["b"])
#> A join_keys object containing foreign keys between 2 datasets:
#> a: [no primary keys]
#> <-- b: [x]
#> b: [no primary keys]
#> --> a: [x]
join_keys(data)["a"] # should show empty keys
#> An empty join_keys object.
join_keys(data)["b"]
#> A join_keys object containing foreign keys between 2 datasets:
#> a: [no primary keys]
#> <-- b: [x]
#> b: [no primary keys]
#> --> a: [x]