ПочатиПочніть безкоштовно

Реактивні контексти

Реактивні значення — це спеціальні конструкції в Shiny; їх немає більше ніде в програмуванні R. Тому їх не можна використовувати в будь-якому R‑коді: доступ до реактивних значень можливий лише в межах реактивного контексту.

Саме тому будь-яку змінну, що залежить від реактивного значення, потрібно створювати за допомогою функції reactive(), інакше ви отримаєте помилку. Сам сервер Shiny не є реактивним контекстом, натомість ним є функція reactive(), функція observe() та всі функції render*().

Ця вправа є частиною курсу

Case Studies: створення вебзастосунків із Shiny в R

Переглянути курс

Інструкції до вправи

Надано застосунок Shiny з двома числовими полями введення — num1 і num2, — та текстовим виведенням. Ваше завдання:

  • У реактивній змінній my_sum обчислити суму двох числових введень (рядок 10).
  • У реактивній змінній my_average обчислити середнє цих двох введень (рядок 14).
  • У текстовому виведенні показати обчислене середнє з використанням реактивних змінних (рядок 23).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код