The teal.data
package specifies the data format used in teal
applications.
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:
$
, get()
, ls()
, as.list()
work out of the box.teal_data
is a locked environment, and data modification is only possible through the teal.code::eval_code()
and within.qenv()
functions.[
.teal_data
environment directly.To create an object of class teal_data
, use the teal_data
function.
teal_data
has a number of methods to interact with the object.
library(teal.data) # create teal_data object my_data <- teal_data() # run code within teal_data to create data objects my_data <- within( my_data, { data1 <- data.frame(id = 1:10, x = 11:20) data2 <- data.frame(id = 1:10, x = 21:30) data3 <- data.frame(id = 1:10, x = 31:40) } ) # get objects stored in teal_data my_data[["data1"]] my_data[["data2"]] # limit objects stored in teal_data my_data[c("data1", "data3")] # get reproducible code get_code(my_data) # get code just for specific object get_code(my_data, names = "data2") # get datanames names(my_data) # print print(my_data)
The primary function of teal_data
is to provide reproducibility of data.
We recommend to initialize empty teal_data
, which marks object as verified, and create datasets by evaluating code in the object, using within
or eval_code
.
Read more in teal_data Reproducibility.
my_data <- teal_data() my_data <- within(my_data, data <- data.frame(x = 11:20)) my_data <- within(my_data, data$id <- seq_len(nrow(data))) my_data # is verified
The teal_data
class supports relational data.
Relationships between datasets can be described by joining keys and stored in a teal_data
object.
These relationships can be read or set with the join_keys
function.
See more in join_keys.
my_data <- teal_data() my_data <- within(my_data, { data <- data.frame(id = 1:10, x = 11:20) child <- data.frame(id = 1:20, data_id = c(1:10, 1:10), y = 21:30) }) join_keys(my_data) <- join_keys( join_key("data", "data", key = "id"), join_key("child", "child", key = "id"), join_key("child", "data", key = c("data_id" = "id")) ) join_keys(my_data) # join_keys for limited object join_keys(my_data["child"])
An object is hidden in teal_data
if its name starts with a dot (.
). This can be used to pass auxiliary objects in
the teal_data
instance, without being visible in the teal
summary and filter panel.
my_data <- teal_data() my_data <- within(my_data, { data <- data.frame(id = 1:10, x = 11:20) .data2 <- data.frame(id = 1:20, data_id = c(1:10, 1:10), y = 21:30) }) ls(my_data) names(my_data)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.