부드러운 곡선 맞추기: 체크박스 입력
텍스트나 숫자 입력과 달리, 체크박스 입력의 값은 TRUE 또는 FALSE 두 가지뿐입니다. 사용자가 체크박스를 선택하면 값은 TRUE가 되고, 선택을 해제하면 FALSE가 됩니다.
checkboxInput() 함수의 value 매개변수는 초기값을 정하며, TRUE 또는 FALSE로만 설정할 수 있다는 점에 유의하세요.
이전 연습 문제의 Shiny 앱 코드를 일부 수정하여 제공합니다. 이제 renderPlot() 내부의 ggplot 그래프 객체를 변수 p에 할당합니다.
이 연습은 강의의 일부입니다
사례 연구: R의 Shiny로 웹 애플리케이션 만들기
연습 안내
체크박스를 추가하여, 선택 시 플롯에 최적 적합선을 추가하도록 해보세요. 구체적으로는 다음을 수행하세요.
- UI에 ID가 "fit"이고 라벨이 "Add line of best fit"이며 초기 상태가 선택 해제인 체크박스 입력을 추가하세요.
- 서버에 코드를 추가하여 입력이 선택되면 플롯에 최적 적합선이 추가되도록 하세요. 최적 적합선을 추가하는 코드는 제공되어 있습니다(26행).
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define UI for the application
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("title", "Title", "GDP vs life exp"),
numericInput("size", "Point size", 1, 1),
# Add a checkbox for line of best fit
___
),
mainPanel(
plotOutput("plot")
)
)
)
# Define the server logic
server <- function(input, output) {
output$plot <- renderPlot({
p <- ggplot(gapminder, aes(gdpPercap, lifeExp)) +
geom_point(size = input$size) +
scale_x_log10() +
ggtitle(input$title)
# When the "fit" checkbox is checked, add a line
# of best fit
if (___) {
p <- p + geom_smooth(method = "lm")
}
p
})
}
# Run the application
shinyApp(ui = ui, server = server)