연도 필터 추가: 숫자 슬라이더 입력
슬라이더 입력은 숫자 입력과 비슷한 용도로 사용할 수 있어요. 둘 다 사용자가 숫자를 선택하도록 도와줍니다.
슬라이더의 초기 제공 값(value 인자)이 단일 숫자이면 슬라이더는 하나의 숫자만 선택하도록 동작해요. 하지만 초기 값이 두 숫자로 이루어진 벡터라면, 슬라이더는 단일 값 대신 두 개의 숫자를 선택하는 용도로 동작합니다.
입력 유형에 따라 사용 가능한 인자가 서로 다를 수 있어요. 각 입력이 정확히 어떤 인자를 사용하는지 기억하기는 어렵습니다. 특정 입력 함수에서 어떤 인자를 사용할 수 있는지 확인하는 유일한 방법은 해당 함수의 문서나 도움말을 살펴보는 것입니다.
이 연습은 강의의 일부입니다
사례 연구: R의 Shiny로 웹 애플리케이션 만들기
연습 안내
- UI에 ID가 "years"이고 라벨이 "Years"인
sliderInput()을 추가하세요(14행).- 최솟값은 데이터셋의 가장 이른 연도로, 최댓값은 가장 최신 연도로 설정하세요.
- 기본적으로 슬라이더의 끝점은 1977과 2002로 설정하여, 이 두 연도(포함) 사이의 데이터만 보이도록 하세요.
- 서버에 코드를 추가하여 입력에서 선택한 연도를 사용해
gapminder데이터를 부분 집합으로 만들고, 해당 연도 범위에 속하는 레코드만 나타나도록 하세요(28행).
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("title", "Title", "GDP vs life exp"),
numericInput("size", "Point size", 1, 1),
checkboxInput("fit", "Add line of best fit", FALSE),
radioButtons("color", "Point color",
choices = c("blue", "red", "green", "black")),
selectInput("continents", "Continents",
choices = levels(gapminder$continent),
multiple = TRUE,
selected = "Europe"),
# Add a slider selector for years to filter
___("years", ___, ___, ___, ___)
),
mainPanel(
plotOutput("plot")
)
)
)
# Define the server logic
server <- function(input, output) {
output$plot <- renderPlot({
# Subset the gapminder data by the chosen years
data <- subset(gapminder,
continent %in% input$continents &
year >= ___$years[1] & year <= ___$years[2])
p <- ggplot(data, aes(gdpPercap, lifeExp)) +
geom_point(size = input$size, col = input$color) +
scale_x_log10() +
ggtitle(input$title)
if (input$fit) {
p <- p + geom_smooth(method = "lm")
}
p
})
}
shinyApp(ui = ui, server = server)