このレッスンでは、ウィジェットを操作すると表示内容が動的に変わるアプリケーションを作成します。
なお、この記事は、
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”)に対応します。