R Language
シャイニー
サーチ…
アプリを作成する
Shinyは、 RStudioによって開発されたRパッケージで、 Rの分析結果をインタラクティブに表示するWebページの作成を可能にします。
Shinyアプリケーションを作成するには2つの簡単な方法があります:
- 1つの
.R
ファイル、または - 2つのファイル:
ui.R
とserver.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.R
とserver.R
2つのファイルに分割されている場合、またはすべてのアプリが1つのファイルに含まれている場合。
1. 2つのファイルapp
あなたの2つのファイルui.R
とserver.R
は同じフォルダになければなりません。コンソールでshinyApp()
関数を実行し、Shinyアプリケーションを含むディレクトリのパスを渡すことでアプリケーションを起動することができます。
shinyApp("path_to_the_folder_containing_the_files")
ui.R
またはserver.R
ファイルを開いたときにRstudioに表示されるRun Appボタンを押して、Rstudioから直接アプリを起動することもできます。
または、作業ディレクトリが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をナビゲートするには、左右の矢印キーを使用します。