Reaktive Kontexte
Reaktive Werte sind besondere Konstrukte in Shiny; sie kommen sonst in der R-Programmierung nicht vor. Entsprechend können sie nicht in beliebigem R-Code verwendet werden, reaktive Werte sind nur innerhalb eines reaktiven Kontexts zugänglich.
Darum muss jede Variable, die von einem reaktiven Wert abhängt, mit der Funktion reactive() erzeugt werden, sonst erhältst du einen Fehler. Der Shiny-Server selbst ist kein reaktiver Kontext, wohl aber die Funktion reactive(), die Funktion observe() und alle render*()-Funktionen.
Diese Übung ist Teil des Kurses
Fallstudien: Webanwendungen mit Shiny in R erstellen
Anleitung zur Übung
Dir steht eine Shiny-App mit zwei numerischen Eingaben, num1 und num2, sowie einer Textausgabe zur Verfügung. Deine Aufgabe ist:
- In einer reaktiven Variable namens
my_sumdie Summe der beiden numerischen Eingaben berechnen (Zeile 10). - In einer reaktiven Variable namens
my_averageden Durchschnitt der beiden Eingaben berechnen (Zeile 14). - In der Textausgabe den berechneten Durchschnitt mithilfe der reaktiven Variablen anzeigen (Zeile 23).
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
ui <- fluidPage(
numericInput("num1", "Number 1", 5),
numericInput("num2", "Number 2", 10),
textOutput("result")
)
server <- function(input, output) {
# Calculate the sum of the inputs
my_sum <- reactive({
input$num1 + ___
})
# Calculate the average of the inputs
my_average <- ___({
my_sum() / 2
})
output$result <- renderText({
paste(
# Print the calculated sum
"The sum is", my_sum(),
# Print the calculated average
"and the average is", ___
)
})
}
shinyApp(ui, server)