Tambahkan ekspresi reaktif lainnya
Sebuah ekspresi reaktif dapat memanggil ekspresi reaktif lainnya. Ini memungkinkan Anda memodularisasi komputasi dan memastikan bahwa komputasi TIDAK dieksekusi berulang kali. Menguasai penggunaan ekspresi reaktif adalah kunci untuk membangun aplikasi Shiny yang berkinerja baik.
Dalam latihan ini, Anda akan menggunakan ekspresi reaktif untuk menghitung status kesehatan berdasarkan BMI.
Latihan ini adalah bagian dari kursus
Membangun Aplikasi Web dengan Shiny di R
Petunjuk latihan
- Tambahkan ekspresi reaktif
rval_bmi_statusuntuk menghitung status BMI. - Gunakan ekspresi reaktif ini untuk menggantikan perhitungan status BMI di output.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
ui <- fluidPage(
titlePanel('BMI Calculator'),
sidebarLayout(
sidebarPanel(
numericInput('height', 'Enter your height in meters', 1.5, 1, 2),
numericInput('weight', 'Enter your weight in Kilograms', 60, 45, 120)
),
mainPanel(
textOutput("bmi"),
textOutput("bmi_status")
)
)
)
server <- function(input, output, session) {
rval_bmi <- reactive({
input$weight/(input$height^2)
})
# CODE BELOW: Add a reactive expression rval_bmi_status to
# return health status as underweight etc. based on inputs
output$bmi <- renderText({
bmi <- rval_bmi()
paste("Your BMI is", round(bmi, 1))
})
output$bmi_status <- renderText({
# MODIFY CODE BELOW: Replace right-hand-side with
# reactive expression rval_bmi_status
bmi_status <- cut(rval_bmi(),
breaks = c(0, 18.5, 24.9, 29.9, 40),
labels = c('underweight', 'healthy', 'overweight', 'obese')
)
paste("You are", bmi_status)
})
}
shinyApp(ui = ui, server = server)