R Shiny Reactivity / Observer с несколькими входами и кнопкой действия - PullRequest
0 голосов
/ 08 февраля 2020

Работая над блестящим приложением / приборной панелью для анализа рисков, в основном реализуя this в блестящем, но я сталкиваюсь с несколькими проблемами с использованием входных значений для имитации их и печати вывода. Когда я запускаю приложение

, я получаю предупреждение ниже:

warning

Приложение работает, но мой окончательный вывод предполагается максимальным значение, но я получаю NA, как показано ниже:

enter image description here

library(shinydashboard)
library(mc2d)

ui <- dashboardPage(
  dashboardHeader(title = "EngSec Risk Analysis"),
  dashboardSidebar(),
  dashboardBody(
    # Boxes need to be put in a row (or column)
    fluidRow(
      column(width = 3,
             box(width = NULL,
                 title = "Loss Event Frequency",

                 numericInput("loss_event_frequency_min", label = h5("loss event frequency minimum"), value = 2),

                 numericInput("loss_event_frequency_max", label = h5("loss event frequency maximum"), value = 9),

                 numericInput("loss_event_frequency_likely", label = h5("loss event frequency likley"), value = 4)
             ),
             box(width = NULL,
                 title = "Loss Magnitude",

                 numericInput("loss_magnitude_min", label = h5("loss magnitude minimum"), value = 1000),

                 numericInput("loss_magnitude_max", label = h5("loss magnitude maximum"), value = 9000),

                 numericInput("loss_magnitude_likley", label = h5("loss magnitude likley"), value = 4000)
             ),
             actionButton("sample", "Click To Run Simulation")
      ),
      column(width = 9,
             box(width = NULL, textOutput("max")),
             box(width = NULL ))
    )
  )
)

server <- function(input, output) {
  confidence <- 4 # default in PERT
  number_of_runs <- 10000
  set.seed(88881111)
  LEF <- eventReactive(input$sample, { 
    rpert(number_of_runs, input$loss_event_frequency_min, input$loss_event_frequency_likely, input$loss_event_frequency_max, shape = confidence)               
  })

  LM <- eventReactive(input$sample, { 
    rpert(number_of_runs, input$loss_magnitude_min, input$loss_magnitude_likely, input$loss_magnitude_max, shape = confidence)               
  })
  annual_loss_exposure <- eventReactive(input$sample, { LEF() * LM()})
  ALE <- eventReactive(input$sample, { 
    sapply(LEF(), function(e) sum(rpert(e, input$loss_magnitude_min, input$loss_magnitude_likely, input$loss_magnitude_max, shape = confidence)))
  })
  max_loss <- eventReactive(input$sample, { max(ALE())})
  min_loss <- eventReactive(input$sample, { min(ALE())})
  output$max <- renderPrint({max_loss()})
}

shinyApp(ui, server)

Любая помощь приветствуется спасибо

...