Zacznij terazZacznij za darmo

Konteksty reaktywne

Wartości reaktywne to specjalne konstrukcje w Shiny – nie spotkasz ich nigdzie indziej w programowaniu w R. Dlatego nie można ich używać w dowolnym kodzie R: wartości reaktywne są dostępne wyłącznie w kontekście reaktywnym.

Właśnie dlatego każda zmienna zależna od wartości reaktywnej musi być tworzona za pomocą funkcji reactive() – w przeciwnym razie pojawi się błąd. Sam serwer Shiny nie jest kontekstem reaktywnym, ale już funkcja reactive(), funkcja observe() oraz wszystkie funkcje render*() już nim są.

To ćwiczenie jest częścią kursu

Studia przypadków: tworzenie aplikacji webowych w Shiny w R

Zobacz kurs

Instrukcje do ćwiczenia

Masz do dyspozycji aplikację Shiny zawierającą dwa wejścia numeryczne, num1 i num2, oraz wyjście tekstowe. Twoim zadaniem jest:

  • W zmiennej reaktywnej o nazwie my_sum obliczyć sumę dwóch wejść numerycznych (wiersz 10).
  • W zmiennej reaktywnej o nazwie my_average obliczyć średnią z obu wejść (wiersz 14).
  • W wyjściu tekstowym wyświetlić obliczoną średnią, korzystając ze zmiennych reaktywnych (wiersz 23).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod