시작하기무료로 시작하기

연도 필터 추가: 숫자 슬라이더 입력

슬라이더 입력은 숫자 입력과 비슷한 용도로 사용할 수 있어요. 둘 다 사용자가 숫자를 선택하도록 도와줍니다.

슬라이더의 초기 제공 값(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)
코드 편집 및 실행