14.2 Welche Befehle sollen ausgeführt werden

Shiny verwendet reactive programming, dass bedeutet wir müssen shiny vermitteln wie eine Berechnung oder Darstellung durchgeführt wird und nicht die eine Berechnung durchzuführen.

# define server function
server <- function(input, output, session) {
  output$summary <- renderPrint({
    dataset <- get(input$dataset, "package:datasets")
    summary(dataset)
  })
  
  output$table <- renderTable({
    dataset <- get(input$dataset, "package:datasets")
    dataset
  })
}
# run the app
shinyApp(ui, server)

Das Objekt server kann noch besser definiert werden durch eine reactive expression. Dadurch muss man Objekte (in diesem Beispiel get(input$dataset, "package:datasets")) nur einmal definieren. Eine reactive expression wird dabei wie ein Funktionsaufruf genutzt: