Create teal_slices object to package multiple filters and additional settings.
Check out teal_slices-utilities functions for working with teal_slices object.
Usage
teal_slices(
...,
exclude_varnames = NULL,
include_varnames = NULL,
count_type = NULL,
allow_add = TRUE
)Arguments
- ...
any number of
teal_sliceobjects.- include_varnames, exclude_varnames
(
named lists ofcharacter) where list names match names of data sets and vector elements match variable names in respective data sets; specify which variables are allowed to be filtered; seeDetails.- count_type
-
This is a new feature. Do kindly share your opinions on
teal.slice's GitHub repository.(
character(1)) string specifying how observations are tallied by these filter states. Possible options:"none"(default) to have counts of singleFilterStateto show unfiltered number only."all"to have counts of singleFilterStateto show number of observation in filtered and unfiltered dataset. Note, that issues were reported when using this option withMultiAssayExperiment. Please make sure that adding new filters doesn't fail on target platform before deploying for production.
- allow_add
(
logical(1)) logical flag specifying whether the user will be able to add new filters
Details
teal_slices() collates multiple teal_slice objects into a teal_slices object,
a complete filter specification. This is used by all classes above FilterState
as well as filter_panel_api wrapper functions.
teal_slices has attributes that modify the behavior of the filter panel, which are resolved by different classes.
include_varnames and exclude_varnames determine which variables can have filters assigned.
The former enumerates allowed variables, the latter enumerates forbidden values.
Since these could be mutually exclusive, it is impossible to set both allowed and forbidden
variables for one data set in one teal_slices.
See also
teal_slicefor creating constituent elements ofteal_slicesteal::slices_storefor robust utilities for saving and loadingteal_slicesinJSONformatis.teal_slices,as.teal_slices,as.list.teal_slices, [[.teal_slices],c.teal_slicesprint.teal_slices,format.teal_slices
Examples
filter_1 <- teal_slice(
dataname = "dataname1",
varname = "varname1",
choices = letters,
selected = "b",
keep_na = TRUE,
fixed = FALSE,
extra1 = "extraone"
)
filter_2 <- teal_slice(
dataname = "dataname1",
varname = "varname2",
choices = 1:10,
keep_na = TRUE,
selected = 2,
fixed = TRUE,
anchored = FALSE,
extra2 = "extratwo"
)
filter_3 <- teal_slice(
dataname = "dataname2",
varname = "varname3",
choices = 1:10 / 10,
keep_na = TRUE,
selected = 0.2,
fixed = TRUE,
anchored = FALSE,
extra1 = "extraone",
extra2 = "extratwo"
)
all_filters <- teal_slices(
filter_1,
filter_2,
filter_3,
exclude_varnames = list(
"dataname1" = "varname2"
)
)
is.teal_slices(all_filters)
#> [1] TRUE
all_filters[1:2]
#> {
#> "slices": [
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname1",
#> "id" : "dataname1 varname1",
#> "choices" : ["a", "b", "c", "d", "e", "f", "...
#> "selected" : ["b"],
#> "keep_na" : true,
#> "fixed" : false,
#> "anchored" : false,
#> "multiple" : true,
#> "extra1" : "extraone"
#> },
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname2",
#> "id" : "dataname1 varname2",
#> "choices" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
#> "selected" : [2],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo"
#> }
#> ],
#> "attributes": {
#> "exclude_varnames" : {
#> "dataname1" : "varname2"
#> },
#> "allow_add" : true
#> }
#> }
c(all_filters[1], all_filters[2])
#> {
#> "slices": [
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname1",
#> "id" : "dataname1 varname1",
#> "choices" : ["a", "b", "c", "d", "e", "f", "...
#> "selected" : ["b"],
#> "keep_na" : true,
#> "fixed" : false,
#> "anchored" : false,
#> "multiple" : true,
#> "extra1" : "extraone"
#> },
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname2",
#> "id" : "dataname1 varname2",
#> "choices" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
#> "selected" : [2],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo"
#> }
#> ],
#> "attributes": {
#> "exclude_varnames" : {
#> "dataname1" : "varname2"
#> },
#> "allow_add" : true
#> }
#> }
print(all_filters)
#> {
#> "slices": [
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname1",
#> "id" : "dataname1 varname1",
#> "choices" : ["a", "b", "c", "d", "e", "f", "...
#> "selected" : ["b"],
#> "keep_na" : true,
#> "fixed" : false,
#> "anchored" : false,
#> "multiple" : true,
#> "extra1" : "extraone"
#> },
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname2",
#> "id" : "dataname1 varname2",
#> "choices" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
#> "selected" : [2],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo"
#> },
#> {
#> "dataname" : "dataname2",
#> "varname" : "varname3",
#> "id" : "dataname2 varname3",
#> "choices" : [0.10000000000000001, 0.20000000...
#> "selected" : [0.20000000000000001],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo",
#> "extra1" : "extraone"
#> }
#> ],
#> "attributes": {
#> "exclude_varnames" : {
#> "dataname1" : "varname2"
#> },
#> "allow_add" : true
#> }
#> }
print(all_filters, trim_lines = FALSE)
#> {
#> "slices": [
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname1",
#> "id" : "dataname1 varname1",
#> "choices" : ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"],
#> "selected" : ["b"],
#> "keep_na" : true,
#> "fixed" : false,
#> "anchored" : false,
#> "multiple" : true,
#> "extra1" : "extraone"
#> },
#> {
#> "dataname" : "dataname1",
#> "varname" : "varname2",
#> "id" : "dataname1 varname2",
#> "choices" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
#> "selected" : [2],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo"
#> },
#> {
#> "dataname" : "dataname2",
#> "varname" : "varname3",
#> "id" : "dataname2 varname3",
#> "choices" : [0.10000000000000001, 0.20000000000000001, 0.29999999999999999, 0.40000000000000002, 0.5, 0.59999999999999998, 0.69999999999999996, 0.80000000000000004, 0.90000000000000002, 1],
#> "selected" : [0.20000000000000001],
#> "keep_na" : true,
#> "fixed" : true,
#> "anchored" : false,
#> "multiple" : true,
#> "extra2" : "extratwo",
#> "extra1" : "extraone"
#> }
#> ],
#> "attributes": {
#> "exclude_varnames" : {
#> "dataname1" : "varname2"
#> },
#> "allow_add" : true
#> }
#> }