Comprehensive data integration function for teal
applications
Source: R/teal_data-constructor.R
, R/teal_data-extract.R
teal_data.Rd
Arguments
- ...
any number of objects (presumably data objects) provided as
name = value
pairs.- join_keys
(
join_keys
or 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_data
may not be reproducibleUse
verify()
to verify code reproducibility. - x
(
teal_data
)- names
(
character
) names of objects included inteal_subset
to subset
Details
A teal_data
is meant to be used for reproducibility purposes. The class inherits from
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_data
is 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_data
environment 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: 0x55da495a0150> 🔒
#> 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: 0x55da4b346108> 🔒
#> Parent: <environment: devtools_shims>
#> Bindings:
#> - a: [numeric]
data[c("a", "b")]
#> ✅︎ verified teal_data object
#> <environment: 0x55da48d3ff28> 🔒
#> 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]