Kom igångKom igång gratis

Reaktiva kontexter

Reaktiva värden är speciella konstruktioner i Shiny och förekommer inte någon annanstans i R-programmering. Därför kan de inte användas i vilken R-kod som helst – reaktiva värden kan bara användas inom en reaktiv kontext.

Det är därför varje variabel som beror på ett reaktivt värde måste skapas med funktionen reactive(), annars uppstår ett fel. Shiny-servern i sig är inte en reaktiv kontext, men funktionen reactive(), funktionen observe() och alla render*()-funktioner är det.

Den här övningen är en del av kursen

Fallstudier: Bygg webbapplikationer med Shiny i R

Visa kurs

Övningsinstruktioner

Du får en Shiny-app med två numeriska indata, num1 och num2, samt en textutdata. Din uppgift är att:

  • I en reaktiv variabel kallad my_sum, beräkna summan av de två numeriska indatana (rad 10).
  • I en reaktiv variabel kallad my_average, beräkna medelvärdet av de två indatana (rad 14).
  • I textutdatan, visa det beräknade medelvärdet med hjälp av de reaktiva variablerna (rad 23).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod