Nguồn vs. Bộ dẫn vs. Điểm cuối
Điều kỳ diệu phía sau Shiny được vận hành bởi tính phản ứng (reactivity). Như bạn đã học trong bài học này, có ba loại thành phần phản ứng trong một ứng dụng Shiny.
- Reactive source: Thông tin người dùng nhập vào, thường thông qua giao diện trình duyệt.
- Reactive conductor: Thành phần phản ứng nằm giữa nguồn và điểm cuối, thường dùng để bao gói các phép tính chậm.
- Reactive endpoint: Những gì xuất hiện trên cửa sổ trình duyệt của người dùng, như một biểu đồ hoặc bảng giá trị.
ui <- fluidPage(
titlePanel('BMI Calculator'),
theme = shinythemes::shinytheme('cosmo'),
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_range")
)
)
)
server <- function(input, output, session) {
rval_bmi <- reactive({
input$weight/(input$height^2)
})
output$bmi <- renderText({
bmi <- rval_bmi()
paste("Your BMI is", round(bmi, 1))
})
output$bmi_range <- renderText({
bmi <- rval_bmi()
health_status <- cut(bmi,
breaks = c(0, 18.5, 24.9, 29.9, 40),
labels = c('underweight', 'healthy', 'overweight', 'obese')
)
paste("You are", health_status)
})
}
shinyApp(ui, server)
Trong bài tập này, bạn sẽ được cung cấp một tập các thành phần phản ứng. Hãy phân loại mỗi thành phần là nguồn, bộ dẫn, hoặc điểm cuối.
Bài tập này là một phần của khóa học
Xây dựng ứng dụng web với Shiny trong R
Bài tập tương tác thực hành
Biến lý thuyết thành hành động với một trong các bài tập tương tác của chúng tôi
Bắt đầu bài tập