Konteks reaktif
Nilai reaktif adalah konstruk khusus di Shiny; konstruk ini tidak ditemukan di tempat lain dalam pemrograman R. Karena itu, nilai reaktif tidak dapat digunakan pada sembarang kode R; nilai reaktif hanya dapat diakses dalam konteks reaktif.
Inilah alasan mengapa setiap variabel yang bergantung pada nilai reaktif wajib dibuat menggunakan fungsi reactive(), jika tidak Anda akan mendapatkan galat. Server Shiny itu sendiri bukan konteks reaktif, tetapi fungsi reactive(), fungsi observe(), dan semua fungsi render*() adalah konteks reaktif.
Latihan ini adalah bagian dari kursus
Studi Kasus: Membangun Aplikasi Web dengan Shiny di R
Petunjuk latihan
Anda disediakan sebuah aplikasi Shiny yang berisi dua numeric input, num1 dan num2, serta sebuah text output. Tugas Anda adalah:
- Dalam variabel reaktif bernama
my_sum, hitung jumlah dari dua numeric input tersebut (baris 10). - Dalam variabel reaktif bernama
my_average, hitung rata-rata dari kedua input tersebut (baris 14). - Pada text output, tampilkan nilai rata-rata yang dihitung menggunakan variabel reaktif tersebut (baris 23).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)