НачатьНачать бесплатно

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

Реактивные значения — это особые конструкции Shiny, которые не встречаются в других частях R. Именно поэтому они не могут использоваться в произвольном R-коде: реактивные значения доступны только внутри реактивного контекста.

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

Это упражнение является частью курса

Примеры использования: создание веб-приложений с 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)
Редактировать и запускать код