Boa Noite Colegas.
Estou com o seguinte problema. Escrevo um aplicativo usando RMarkdown, Shiny e Flexdashboard. Montei uma estrutura de um painel onde os graficos só devem ser atualizados após o acionamento do botão “Atualizar” porém, ao abrir o aplicativo na primeira vez, o painel deve ser carregado. Usei uma função dados ← eventReactive() para carregar os dados. Para que gráficos fossem exibidos no primeiro acesso, usei o parâmetro ignoreNULL = FALSE na função. Porém o aplicativo excuta mas os gráfico ficam em branco. Só carregam após clicar no botão.Ou seja, o parâmetro não está sendo acionado. O que pode estar errado? Segue o trecho do código:
pickerInput(
inputId = "ano",
label = "Selecione o ano:",
selected = max(base_amb$ano),
choices = unique(sort(base_amb$ano,decreasing = TRUE)),
options = list(
size = 3)
)
base_ano <- reactive({
base_amb[base_amb$ano == input$ano,]
})
renderUI({
pickerInput(
inputId = "meses",
label = "Marque/Desmarque os meses:",
choices = unique(sort(base_ano()$mes)),
selected = unique(base_ano()$mes),
# selected = c('01','02'),
options = pickerOptions(
actionsBox = TRUE,
size = 10,
selectedTextFormat = "count > 2"
),
multiple = TRUE
)
})
renderUI({
pickerInput(
inputId = "espec",
label = "Marque/Desmarque as especialidades:",
choices = sort(unique(sort(base_ano()$especialidade))),
selected = unique(base_ano()$especialidade),
#selected = c("CARDIOLOGIA","INFECTOLOGIA"),
options = pickerOptions(
actionsBox = TRUE,
size = 10,
selectedTextFormat = "count > 2"
),
multiple = TRUE
)
})
actionButton(
inputId = "apply",
label = "Executar",
icon = icon(name = "play", lib = "font-awesome")
)
# Reset button
actionButton(inputId = "reset",
label = "Reset",
icon = icon("sync"),
width = '50%')
hr()
dados <- eventReactive(eventExpr = input$apply, valueExpr = # When button is clicked...
{ # ...this is executed
req(input$ano,input$meses,input$espec)
base_amb %>%
filter(ano == input$ano) %>%
filter(mes %in% input$meses) %>%
filter(especialidade %in% input$espec)
},ignoreNULL = FALSE)
dados_tempo <- eventReactive( eventExpr = input$apply, valueExpr = # When button is clicked...
{ # ...this is executed
req(input$ano,input$meses,input$espec)
base_tempo %>%
filter(ano_inicio_atendimento == input$ano) %>%
filter(mes_inicio_atendimento %in% input$meses) %>%
filter(especialidade %in% input$espec)
},ignoreNULL = FALSE)
observeEvent(eventExpr = input$reset, # When button is clicked...
handlerExpr = { # ...this is executed
updatePickerInput(
session = session,
inputId = "ano",
selected = max(base_amb$ano)
)
# Update picker widget: Product Line
updatePickerInput(
session = session,
inputId = "meses",
selected = unique(base_ano()$mes))
# Update picker widget: Customer
updatePickerInput(
session = session,
inputId = "espec",
selected = unique(base_ano()$especialidade))
# Delay and Mimic click on Apply button
shinyjs::delay(ms = 300, expr = {
shinyjs::click(id = "apply")
})
})