I'm building a shiny app which holds multiple datasets with associated metadata. To organize this I thought it would be easiest to have a tibble as the main object with a column to house the actual data (list column).
data <- tibble(
id = c(1, 2),
name = c("default_1", "default_2"),
df = list(as_tibble(iris), as_tibble(Titanic)),
description = c("The Iris Dataset", "Titanic Dataset"),
defined_vars = list(tibble(key = character(),
value = character())),
changelog = list(tibble(key = character(),
value = character()))
)
That looks like its supposed to however whenever I go to fetch the dataframe I want to do something like
data %>% filter(names == input$selected_dataset) %>% pull(df)
or even just base subsetting but referencing any specific df observation returns a list of 1 with the tibble in it so I have to do
data %>% filter(names == input$selected_dataset) %>% pull(df) %>% pluck(1)
which doesn't seem right. Is there any way to have a column of tibbles (as opposed to a column of one element lists that contain tibbles) or a more elegant way to extract them or a better way to approach this all together?