수색…


앱 만들기

Shiny는 RStudio 에서 개발 한 R 패키지로 R 페이지에서 분석 결과를 대화 형으로 표시 할 수 있습니다.

Shiny 앱을 만드는 두 가지 간단한 방법이 있습니다.

  • 하나의 .R 파일 또는
  • : 두 개의 파일에 ui.Rserver.R .

Shiny 앱은 두 부분으로 나뉩니다.

  • ui : 응용 프로그램의 레이아웃과 모양을 제어하는 ​​사용자 인터페이스 스크립트.
  • 서버 (server) : 애플리케이션이 반응하도록하는 코드를 포함하는 서버 스크립트.

하나의 파일

library(shiny)

# Create the UI
ui <- shinyUI(fluidPage(
    # Application title
    titlePanel("Hello World!")
))

# Create the server function
server <- shinyServer(function(input, output){})

# Run the app
shinyApp(ui = ui, server = server)

두 파일

ui.R 파일 만들기

library(shiny)

# Define UI for application
shinyUI(fluidPage(  
  # Application title
  titlePanel("Hello World!")
))

server.R 파일 만들기

library(shiny)

# Define server logic
shinyServer(function(input, output){})

라디오 버튼

목록에서 항목을 선택하는 데 사용되는 라디오 단추 집합을 만들 수 있습니다.

설정을 변경할 수 있습니다.

  • 선택 : 초기 선택 값 (선택하지 않은 문자 (0))
  • 인라인 : 수평 또는 수직

HTML을 추가하는 것도 가능합니다.

library(shiny)

ui <- fluidPage(    
  radioButtons("radio", 
               label = HTML('<FONT color="red"><FONT size="5pt">Welcome</FONT></FONT><br> <b>Your favorite color is red ?</b>'),
               choices = list("TRUE" = 1, "FALSE" = 2),
               selected = 1,
               inline = T,
               width = "100%"),      
  fluidRow(column(3, textOutput("value")))) 


server <- function(input, output){
  output$value <- renderPrint({
    if(input$radio == 1){return('Great !')}
     else{return("Sorry !")}})}

shinyApp(ui = ui, server = server)

여기에 이미지 설명을 입력하십시오.

확인란 그룹

여러 선택 사항을 개별적으로 전환하는 데 사용할 수있는 확인란 그룹을 만듭니다. 서버는 입력 값을 선택된 값의 문자 벡터로받습니다.

library(shiny)

ui <- fluidPage(    
  checkboxGroupInput("checkGroup1", label = h3("This is a Checkbox group"), 
                 choices = list("1" = 1, "2" = 2, "3" = 3),
                 selected = 1),
  fluidRow(column(3, verbatimTextOutput("text_choice")))
  ) 


server <- function(input, output){
  output$text_choice <- renderPrint({
    return(paste0("You have chosen the choice ",input$checkGroup1))})
} 

shinyApp(ui = ui, server = server)

여기에 이미지 설명을 입력하십시오.

설정을 변경할 수 있습니다.

  • 라벨 : 제목
  • 선택 : 선택한 값
  • selected : 처음 선택한 값 (선택하지 않을 경우 NULL)
  • 인라인 : 수평 또는 수직

HTML을 추가하는 것도 가능합니다.

선택 상자

값 목록에서 하나 또는 여러 항목을 선택하는 데 사용할 수있는 선택 목록을 만듭니다.

library(shiny)

ui <- fluidPage(    
  selectInput("id_selectInput", 
          label = HTML('<B><FONT size="3">What is your favorite color ?</FONT></B>'), 
          multiple = TRUE,
          choices = list("red" = "red", "green" = "green", "blue" = "blue", "yellow" = "yellow"), 
          selected = NULL),
  br(), br(),
  fluidRow(column(3, textOutput("text_choice")))) 


server <- function(input, output){
  output$text_choice <- renderPrint({
    return(input$id_selectInput)})
}

shinyApp(ui = ui, server = server)

여기에 이미지 설명을 입력하십시오.

설정을 변경할 수 있습니다.

  • 라벨 : 제목
  • 선택 : 선택한 값
  • selected : 처음 선택한 값 (선택하지 않을 경우 NULL)
  • multiple : TRUE 또는 FALSE
  • 크기
  • selectize : TRUE 또는 FALSE (select.js를 사용하거나 사용하지 않으려면 디스플레이 변경)

HTML을 추가하는 것도 가능합니다.

반짝이는 앱 실행

앱을 만드는 방법에 따라 여러 가지 방법으로 애플리케이션을 시작할 수 있습니다. 앱이 두 개의 파일로 나누어 져있는 경우 ui.Rserver.R 경우 또는 앱 모두 하나 개의 파일에 있습니다.

1. 두 개의 파일 앱

당신의 두 파일 ui.Rserver.R 같은 폴더에 있어야합니다. 그런 다음 콘솔에서 shinyApp() 함수를 실행하고 Shiny 앱이 포함 된 디렉토리의 경로를 전달하여 앱을 시작할 수 있습니다.

shinyApp("path_to_the_folder_containing_the_files")  

당신은 또한 당신이 때 Rstudio에 나타나는 실행 앱 버튼을 눌러 Rstudio에서 직접 응용 프로그램을 실행할 수 있습니다 ui.R 또는 server.R 파일 열기.
ClicktoRun

또는 작업 디렉토리가 Shiny App 디렉토리 인 경우 콘솔에 runApp() 을 간단히 작성할 수 있습니다.

2. 하나의 파일 앱

하나의 R 파일을 shinyApp() 함수를 사용하여 시작할 수도 있습니다.

  • 내부 코드 :
library(shiny)

ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server

shinyApp(ui = ui, server = server) #run the App
  • 콘솔에서 appFile 매개 변수를 사용하여 Shiny 응용 프로그램이 포함 된 .R 파일에 경로를 추가합니다.
shinyApp(appFile="path_to_my_R_file_containig_the_app")

제어 위젯

기능 위젯
actionButton 동작 버튼
checkboxGroupInput 체크 박스 그룹
checkboxInput 단일 확인란
dateInput 날짜 선택을 도와주는 달력
dateRangeInput 날짜 범위를 선택하기위한 한 쌍의 달력
fileInput 파일 업로드 제어 마법사
helpText 입력 양식에 추가 할 수있는 도움말 텍스트
numericInput 숫자를 입력하는 필드
라디오 버튼 라디오 버튼 세트
selectInput 선택할 수있는 상자
sliderInput 슬라이더 바
submitButton 제출 버튼
텍스트 입력 텍스트를 입력하는 필드
library(shiny)

# Create the UI
ui <- shinyUI(fluidPage(
  titlePanel("Basic widgets"),
  
  fluidRow(
    
    column(3,
           h3("Buttons"),
           actionButton("action", label = "Action"),
           br(),
           br(), 
           submitButton("Submit")),
    
    column(3,
           h3("Single checkbox"),
           checkboxInput("checkbox", label = "Choice A", value = TRUE)),
    
    column(3, 
           checkboxGroupInput("checkGroup", 
                              label = h3("Checkbox group"), 
                              choices = list("Choice 1" = 1, 
                                             "Choice 2" = 2, "Choice 3" = 3),
                              selected = 1)),
    
    column(3, 
           dateInput("date", 
                     label = h3("Date input"), 
                     value = "2014-01-01"))   
  ),
  
  fluidRow(
    
    column(3,
           dateRangeInput("dates", label = h3("Date range"))),
    
    column(3,
           fileInput("file", label = h3("File input"))),
    
    column(3, 
           h3("Help text"),
           helpText("Note: help text isn't a true widget,", 
                    "but it provides an easy way to add text to",
                    "accompany other widgets.")),
    
    column(3, 
           numericInput("num", 
                        label = h3("Numeric input"), 
                        value = 1))   
  ),
  
  fluidRow(
    
    column(3,
           radioButtons("radio", label = h3("Radio buttons"),
                        choices = list("Choice 1" = 1, "Choice 2" = 2,
                                       "Choice 3" = 3),selected = 1)),
    
    column(3,
           selectInput("select", label = h3("Select box"), 
                       choices = list("Choice 1" = 1, "Choice 2" = 2,
                                      "Choice 3" = 3), selected = 1)),
    
    column(3, 
           sliderInput("slider1", label = h3("Sliders"),
                       min = 0, max = 100, value = 50),
           sliderInput("slider2", "",
                       min = 0, max = 100, value = c(25, 75))
    ),
    
    column(3, 
           textInput("text", label = h3("Text input"), 
                     value = "Enter text..."))   
  )
  
))

# Create the server function
server <- shinyServer(function(input, output){})

# Run the app
shinyApp(ui = ui, server = server)

디버깅

debug()debugonce() 는 대부분의 Shiny 디버깅 컨텍스트에서 제대로 작동하지 않습니다. 그러나 중요한 장소에 삽입 된 browser() 문은 Shiny 코드가 작동하지 않는 방법에 대한 많은 통찰력을 줄 수 있습니다. 참고 항목 : browser() 사용하여 디버깅

쇼케이스 모드

Showcase 모드 는 앱을 생성하는 코드와 함께 앱을 표시하고 server.R에서 실행되는 코드 라인을 강조 표시합니다.

쇼케이스 모드를 활성화하는 방법에는 두 가지가 있습니다.

  • runApp("MyApp", display.mode = "showcase") 와 같이 runApp("MyApp", display.mode = "showcase") = "showcase"인수로 반짝이는 앱을 실행하십시오.
  • Shiny app 폴더에 DESCRIPTION 이라는 파일을 DisplayMode: Showcase 줄을 DisplayMode: Showcase 에 추가하십시오.

반응 로그 비주얼 라이저

Reactive Log Visualizer 는 대화 형 브라우저 기반 도구를 제공하여 응용 프로그램에서 반응성 종속성 및 실행을 시각화합니다. Reactive Log Visualizer를 사용하려면 R 콘솔에서 options(shiny.reactlog=TRUE) 을 실행 options(shiny.reactlog=TRUE) 파일에 해당 코드 행을 추가하십시오. Reactive Log Visualizer를 시작하려면 Windows에서 Ctrl + F3을 누르거나 앱이 실행 중일 때 Mac에서 Command + F3을 누릅니다. Reactive Log Visualizer를 탐색하려면 왼쪽 및 오른쪽 화살표 키를 사용하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow