Reaktif bağlamlar
Reaktif değerler Shiny içinde özel yapılardır; R programlamanın başka hiçbir yerinde görülmez. Bu nedenle, reaktif değerler herhangi bir R kodunda kullanılamaz; yalnızca reaktif bir bağlam içinde erişilebilirler.
İşte bu yüzden, bir reaktif değere bağlı olan herhangi bir değişken mutlaka reactive() fonksiyonu kullanılarak oluşturulmalıdır; aksi halde hata alırsın. Shiny sunucusunun kendisi reaktif bir bağlam değildir, ancak reactive() fonksiyonu, observe() fonksiyonu ve tüm render*() fonksiyonları reaktiftir.
Bu egzersiz
Vaka Çalışmaları: R ile Shiny Kullanarak Web Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
Sana iki sayısal girdi (num1 ve num2) ve bir metin çıktısı içeren bir Shiny uygulaması verildi. Görevin:
my_sumadlı bir reaktif değişkende iki sayısal girdinin toplamını hesaplamak (satır 10).my_averageadlı bir reaktif değişkende iki girdinin ortalamasını hesaplamak (satır 14).- Metin çıktısında, hesaplanan ortalamayı reaktif değişkenleri kullanarak göstermek (satır 23).
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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)