サーチ…


アプリを作成する

Shinyは、 RStudioによって開発されたRパッケージで、 Rの分析結果をインタラクティブに表示するWebページの作成を可能にします。

Shinyアプリケーションを作成するには2つの簡単な方法があります:

  • 1つの.Rファイル、または
  • 2つのファイル: ui.Rserver.R

Shinyアプリは2つの部分に分かれています:

  • ui :アプリケーションのレイアウトと外観を制御するユーザーインターフェイススクリプト。
  • サーバー :アプリケーションが反応するためのコードを含むサーバースクリプト。

1つのファイル

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)

2つのファイル

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)

ここに画像の説明を入力

設定を変更することは可能です:

  • ラベル:title
  • 選択肢:選択された値
  • 選択:最初に選択した値(選択しない場合はNULL)
  • インライン:水平または垂直

HTMLを追加することも可能です。

選択ボックス

値リストから1つまたは複数の項目を選択するために使用できる選択リストを作成します。

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)

ここに画像の説明を入力

設定を変更することは可能です:

  • ラベル:title
  • 選択肢:選択された値
  • 選択:最初に選択した値(選択しない場合はNULL)
  • multiple:TRUEまたはFALSE
  • サイズ
  • selectize:TRUEまたはFALSE(selectize.jsを使用するかどうか、表示を変更する)

HTMLを追加することも可能です。

シャイニーアプリを起動する

アプリケーションの作成方法に応じて、いくつかの方法でアプリケーションを起動できます。アプリがui.Rserver.R 2つのファイルに分割されている場合、またはすべてのアプリが1つのファイルに含まれている場合。

1. 2つのファイルapp

あなたの2つのファイルui.Rserver.Rは同じフォルダになければなりません。コンソールでshinyApp()関数を実行し、Shinyアプリケーションを含むディレクトリのパスを渡すことでアプリケーションを起動することができます。

shinyApp("path_to_the_folder_containing_the_files")  

ui.Rまたはserver.Rファイルを開いたときにRstudioに表示されるRun Appボタンを押して、Rstudioから直接アプリを起動することもできます。
ClicktoRun

または、作業ディレクトリがShiny Appディレクトリの場合は、コンソールにrunApp()を記述するだけです。

2. 1つのファイルアプリ

1つのRファイルを作成する場合は、 shinyApp()関数を使用して起動することもできます。

  • あなたのコードの内部:
library(shiny)

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

shinyApp(ui = ui, server = server) #run the App
  • コンソール内で、シャイニーアプリケーションを含む.RファイルへのパスをappFileます。
shinyApp(appFile="path_to_my_R_file_containig_the_app")

コントロールウィジェット

関数 ウィジェット
actionButton アクションボタン
checkboxGroupInput チェックボックスのグループ
checkboxInput 1つのチェックボックス
dateInput 日付選択を支援するカレンダー
dateRangeInput 日付範囲を選択するカレンダーのペア
fileInput ファイルアップロードコントロールウィザード
ヘルプテキスト入力フォームに追加できるヘルプテキスト
numericInput 数字を入力するフィールド
ラジオボタンラジオボタンのセット
selectInput 選択肢のあるボックス
sliderInput スライダバー
submitButton 送信ボタン
textInput テキストを入力するフィールド
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()デバッグbrowser()

ショーケースモード

ショーケースモードでは、アプリケーションを生成するコードとともにアプリケーションを表示し、実行しているserver.Rのコード行をハイライト表示します。

ショーケースモードを有効にするには、次の2つの方法があります。

  • runApp("MyApp", display.mode = "showcase") 、引数display.mode = "showcase"でShinyアプリケーションを起動しrunApp("MyApp", display.mode = "showcase")
  • Shiny appフォルダにDESCRIPTIONというファイルを作成し、この行をDisplayMode: Showcase追加します。

反応ログビジュアライザ

Reactive Log Visualizerは、アプリケーション内の反応的な依存関係や実行を視覚化するための、インタラクティブなブラウザベースのツールを提供します。 Reactive Log Visualizerを有効にするには、Rコンソールでoptions(shiny.reactlog=TRUE)を実行するか、server.Rファイルにそのコード行を追加します。 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