Rshinydashboard_storyboard(2)

R shiny의 기본구조

Posted by Poohj on Tuesday, January 22, 2019

스토리를 작성하기에 앞서 Shinydashboard는 R에서 wep application을 구현하게 하는 패키지인 shiny기능을 활용하여 대시보드로 쉽게 구현이 가능하게 해주는 패키지(package) 입니다. 그래서, shinydashboard를 구현하기 이전에 shiny의 기본 구조를 이해한다면, 한결 빠르고 쉽게 구현이 가능합니다. 그럼 shiny의 기본 구현방법을 알아볼게요. shiny는 기본적으로 ui와 server로 구현되어 있습니다.

ui에서 입력을 하면, server에서 ui에서 받은 입력으로 실행을 하는데요, 기본 코드는 아래와 같습니다. (아래 코드는 shiny 기본 페이지에서 가져왔습니다. 링크: 바로가기 )

ui영역 예시

# Define UI for app that draws a histogram ----
ui <- fluidPage(

  titlePanel("안녕하세요"), #타이틀 입력

  ## 사이드바 영역에 sliderInput 만들기

  #사이드바 레이아웃 선언
  
  sidebarLayout( 

  ##사이드바 패널에 들어갈 내용 생성
  
    sidebarPanel( 

      # sliderInput 생성 
      
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)

    ),

    # 메인 패널에 들어갈 내용 생성 
    
    mainPanel(

      # 히스토그램 구현하기
      plotOutput(outputId = "distPlot")

    )
  )
)

server 영역 예시

server <- function(input, output) {

  
  output$distPlot <- renderPlot({

    x    <- faithful$waiting
    bins <- seq(min(x), max(x), length.out = input$bins + 1)

    hist(x, breaks = bins, col = "#75AADB", border = "white",
         xlab = "",
         main = "히스토그램")

    })

}

위의 예시대로 ui와 server를 선언 후 shinyApp 함수에 아래와 같이 입력하면 첨부한 파일대로 화면이 구현이 됩니다.

shiny 구현

shinyApp(ui, server)

하지만, 위에서도 언급된 것 처럼 shiny로 대시보드를 구현하기엔 너무나 많은 일을 거쳐야하는 불편함이 따릅니다. 그래서 저는 shinydashboard를 활용해서 조금더 쉽게 구현을 해보고자 합니다.


comments powered by Disqus
comments powered by Disqus