Реактивные контексты
Реактивные значения — это особые конструкции 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)