オープンデータとプログラミング

Shinyチュートリアル(レッスン4) リアクティブなアプリケーションをつくる

このレッスンでは、ウィジェットを操作すると表示内容が動的に変わるアプリケーションを作成します。

なお、この記事は、
http://shiny.rstudio.com/tutorial/lesson4/をもとに作成しています。

2つのステップ

2つのプロセスでリアクティブは表示を行うことができます。

  • ui.Rにオブジェクトを追加します
  • server.Rにオブジェクトの生成方法を記述します。オブジェクトは、ウィジェットの値を渡すと、リアクティブになります。
関数 出力
htmlOutput raw HTML
imageOutput image
plotOutput plot
tableOutput table
textOutput text
uiOutput raw HTML
verbatimTextOutput text

HTML要素とウィジェットを追加したのと同様の方法で、ユーザインタフェースに出力を追加することができます。

# ui.R

shinyUI(fluidPage(
  titlePanel("censusVis"),
  
  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
        information from the 2010 US Census."),
      
      selectInput("var", 
        label = "Choose a variable to display",
        choices = c("Percent White", "Percent Black",
          "Percent Hispanic", "Percent Asian"),
        selected = "Percent White"),
      
      sliderInput("range", 
        label = "Range of interest:",
        min = 0, max = 100, value = c(0, 100))
    ),
    
    mainPanel(
      textOutput("text1")
    )
  )
))

ステップ2:オブジェクトを構築するためのRコード

ui.Rに関数を配置することで、オブジェクトを表示する場所、どのオブジェクトを構築するかをシャイニーに指示します。

server.Rのオブジェクトを生成するRコードを記述することによってオブジェクトを作成します。
コードはserver.RスクリプトでshinyServerにある名前の付いていない関数内に記述する必要があります。

無名関数は、shinyプロセスで特別な役割を果たします。
それはアプリのR対象を更新するために必要なコードの全てを含む出力という名前をつけられるリストのような物を造ります。
各々のRオブジェクトは、リストのそれ自身の項目がある必要があります。

それぞれのRオブジェクトは、リストに独自のエントリを持っている必要があります。

新しい要素を定義することで、エントリを作成することができ、出力を以下のように、無名関数内。

要素名は、あなたがui.Rでつくったリアクティブ要素の名前にマッチしなければなりません。

以下のスクリプトでは、output$text1は、ui.R内のtextOutput(“text1”)に対応します。

Comments are closed.