Реактивні контексти
Реактивні значення — це спеціальні конструкції в 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)