Я пытаюсь интегрировать esquisse в приложение. На данный момент у меня есть приложение, которое позволяет пользователям фильтровать некоторые данные, и я хотел бы передать эти данные в esquisse. Esquisse принимает в качестве входных данных реактивные значения, которые обычно обновляются с помощью наблюдаемого события. Тем не менее, я не уверен, как использовать наблюдение здесь как обновления данных, когда есть изменения в большом количестве различных фильтров. Есть ли способ обновлять значения при каждом изменении данных?
Пример приложения:
library(shiny)
library(esquisse)
ui <- fluidPage(
titlePanel("Use esquisse as a Shiny module"),
mainPanel(
tabsetPanel(
tabPanel(
mainPanel(
selectInput(
inputId = "am",
label = "am:",
choices = c(0,1)
),
selectInput(
inputId = "gear",
label = "gear:",
choices = c(3,4,5)
),
selectInput(
inputId = "carb",
label = "carb:",
choices = c(1,2,3,4,6,8)
)
)),
tabPanel(
title = "esquisse",
esquisserUI(
id = "esquisse",
header = FALSE, # dont display gadget title
choose_data = FALSE # dont display button to change data
)
)
)
)
)
server <- function(input, output, session) {
data_r <- reactiveValues(data = data.frame(), name = "empty")
data <- reactive({
mtcars %>%
filter(am == input$am,
gear == input$gear,
carb == input$carb
)
})
data_r$data <- reactive({data()}) ### this doesn't work, so need something similar to this
callModule(
module = esquisserServer,
id = "esquisse",
data = data_r)
}
shinyApp(ui, server)