데이터 보기 확장: 플롯과 다운로드

사례 연구: R의 Shiny로 웹 애플리케이션 만들기

Dean Attali

Shiny Consultant

데이터 플롯

  • 새 데이터셋 탐색의 첫 단계로 플롯이 흔합니다

    • 플롯은 출력입니다
    • UI의 플롯 출력 자리표시자 함수:
    plotOutput("my_plot")
    
    • 서버의 플롯 렌더 함수:
  output$my_plot <- renderPlot({
      # code for a plot
  })
사례 연구: R의 Shiny로 웹 애플리케이션 만들기

데이터 다운로드

  • 다운로드는 다운로드 버튼으로 지원됩니다

    chapter3_2_more_ways_to_view_data_plot_and_download.009.png

    • 다운로드할 파일 형식은 자유롭게 생성 가능
    • 이미지, 텍스트, CSV 파일 등
사례 연구: R의 Shiny로 웹 애플리케이션 만들기

CSV 파일

  • Comma Separated Values(쉼표로 구분된 값)

  • 소·중규모 데이터셋 저장에 적합

  • gapminder의 CSV 예:

    country,continent,year,lifeExp,pop,gdpPercap  
    Afghanistan,Asia,1952,28.801,8425333,779.4453145  
    Afghanistan,Asia,1957,30.332,9240934,820.8530296  
    Afghanistan,Asia,1962,31.997,10267083,853.10071  
    Afghanistan,Asia,1967,34.02,11537966,836.1971382
    
  • CSV 파일 생성:

write.csv(gapminder, "myfile.csv")
사례 연구: R의 Shiny로 웹 애플리케이션 만들기

Shiny에서 데이터 다운로드

  • 다운로드 버튼은 출력으로 취급됩니다

    • UI에 다운로드 버튼 추가(출력 함수와 유사):
    downloadButton(outputId = "download_data", 
                   label = "Download data")
    
    • 서버에 다운로드 핸들러 추가(렌더 함수와 유사):
    output$download_data <- downloadHandler(
        filename = "data.csv",
        content = function(file) {
            # Code that creates a file in the path <file>
            write.csv(gapminder, file)
        }
    )
    
사례 연구: R의 Shiny로 웹 애플리케이션 만들기

다운로드 핸들러

  output$download_data <- downloadHandler(
      filename = "data.csv",
      content = function(file) {
          # code that creates a file in the path <file>
          write.csv(gapminder, file)
      }
  )
  • downloadHandler()의 두 인자
    • filename
      • 다운로드 파일 이름
    • content(file)
      • 인자 1개를 받는 함수
      • 다운로드할 파일을 생성, 인자는 파일 경로
사례 연구: R의 Shiny로 웹 애플리케이션 만들기

연습해 봅시다!

사례 연구: R의 Shiny로 웹 애플리케이션 만들기

Preparing Video For Download...