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 merupakan bagian dari kursus
Membangun Aplikasi Web dengan Shiny di R
Instruksi latihan
- Tambahkan ekspresi reaktif
rval_bmi_statusuntuk menghitung status BMI. - Gunakan ekspresi reaktif ini untuk menggantikan perhitungan status BMI di output.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)