본문 바로가기

Dead Code/DEPRECATED-R

[R코드연습장] shiny 간단구조

shiny패키지는 간단하게 대쉬보드를 짤 수 있는 R의 패키지라고 한다. 슬쩍보더라도, 매우 간단하다. 

 

블로그에서 설명을 보고 슬쩍 흉내만 내봤다.

 

구성은 텍스트입력 박스와 숫자입력 박스로 글자를 치거나 숫자를 입력하면, 아래 본문에 반영되는 형태이다.

 

 

 

 

 

 

 

 

 

코드는 아래와 같다. 

 

크게 보여지는 부분을 관리하는 UI와 내부 계산을 담당하는 SERVER 부분으로 나뉜다. 

그리고 UI는 보여지는 영역에 따라 제목 - TITLE / 레프트 메뉴 - SIDEBAR / 본문 - MAINPANEL로 나뉜다. 

물론 별도의 탑메뉴나 본문 내 탭을 구성할 수도 있다.

 

UI 구성요소들은 shiny 패키지에서 주어지는 것을 따르는 것을 기본으로 하는 것으로 추정(?)되며,

본문은 html 문법에 준해서 작성된다. 

 

SERVER는 R의 문법에 따르면 되며, 다른 패키지나 함수를 사용할 수 있다. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
library(shiny)
 
ui <- 
  fluidPage(
    titlePanel("My Apps"),
    sidebarLayout(
      sidebarPanel(
        textInput(inputId = "txt", label = "Input TXT", placeholder = "Input Your TXT"),
        numericInput(inputId = "num", label = "Input Number(0-100)",
                     value = 50, min = 0, max = 100)
      ),
      mainPanel(
        h5("Your INPUT is..."),
        hr(),
        h5("TEXT :"),
        h3(textOutput(outputId = "txt")),
        hr(),
        h5("NUMBER :"),
        h3(textOutput(outputId = "num"))
        
      )
    )
  )
server <- function(input,output){
  
  output$txt <- renderText({
    if(input$txt == "")
      "Nothing yet"
    else
      input$txt
      })
  
  output$num <- renderText({input$num})
  
}
 
shinyApp(ui=ui, server=server) 
 
 
cs

 

 

 

정리하면, 어떤 변수값을 주어진 UI로 편하게 조작하고, 그 결과값을 본문에서 그래프나 테이블로 볼수 있도록 하는 패키지이다. R 내에서 다 할수 있으니, 편하다고 할 수 있고, 또 하나의 문법을 배워야하는 느낌이 들어서 싫을 수도 있다. 특히나 정해진 서버에 올려두고 호스팅을 해야하는, 유료아닌무료같은유료 패키지라고 할수 있은 느낌같은 느낌이다. 

 

관심있으신 분들은 아래 사이트 참고요~

http://shiny.rstudio.com/gallery