Lesson3 – コントロール・ウィジェットの追加

このレッスンでは、Shiny アプリケーションへのコントロール・ウィジェットの追加方法を説明します。 ウィジェットとは、ユーザが操作できる Web 要素です。 ウィジェットは、ユーザが Shiny アプリにメッセージを送信するための方法を提供します。

Shiny ウィジェットは、ユーザから値を収集します。 ユーザがウィジェットを変更すると、値も変更されます。 これは Lesson 4 で説明します。

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

Shiny には、予め作成されたウィジェットのファミリが付属しています。それぞれのウィジェットは、透過的に名付けられた R 関数で作成されています。例えば、Shiny には、Action ボタンとスライダ・バーを作成する sliderInput という名前の関数を作成する、actionButton という名前の関数が用意されています。

標準的な Shiny ウィジェットは次の通りです:

関数 ウィジェット
actionButton アクション・ボタン
checkboxGroupInput チェックボックスのグループ
checkboxInput 単独のチェックボックス
dateInput 日付入力を手助けするカレンダ
dateRangeInput 日付の範囲を入力するためのカレンダのペア
fileInput ファイルアップロード用のコントロール・ウィザード
helpText 入力フォームに追加できるヘルプ・テキスト
numericInput 数値入力用のフィールド
radioButtons 一組のラジオボタン
selectInput 選択ボックス
sliderInput スライダ・バー
submitButton 送信ボタン
textInput テキスト入力用のフィールド

これらのウィジェットの一部は、Twitter Bootstrap プロジェクトを使用して作られています。Twitter Bootstrap は、ユーザ・インターフェイス構築に人気のあるオープンソース・フレームワークです。

ウィジェットの追加

Lesson 2 で他のタイプの HTML コンテンツを追加したのと同じ方法で、Web ページにウィジェットを追加できます。ウィジェットをアプリケーションに追加するには、 ui オブジェクトの sidebarPanel または mainPanel にウィジェット関数を配置します。

各ウィジェット関数にはいくつかの引数が必要です。各ウィジェットの最初の 2 つの引数は次の通りです。

  • ウィジェットの名前:この名前はユーザには見えませんが、ウィジェットの値にアクセスするために使用できます。名前は文字列でなければなりません
  • ラベル:このラベルはウィジェットと共にアプリへ表示されます。文字列でなければなりませんが、空の文字列 “” にすることができます

名前が “action” で、ラベルが “Action” の場合:

残りの引数は、ウィジェットが何をするかによって異なります。初期値、範囲、増分値などが含まれます。ウィジェットが必要とする引数については、ウィジェット関数のヘルプページ(例:?selectInput)を見てください。

下の app.R スクリプトは、上図のアプリを作成します。それに一致するようあなたの App-1/app.R スクリプトを変更し、アプリを起動してください(runApp(“App-1”)、Run App、ショートカットの何れかを使用します)。

各ウィジェットを操作して、何ができるかを感じ取ってください。ウィジェット関数の値を変更して、その効果を観察してください。この Shiny アプリのレイアウトスキームに興味がある場合は、アプリケーションレイアウト・ガイドの説明を読んでください。このレッスンでは、この複雑なレイアウトスキームは扱いませんが、それが何をしているのかに興味があります。

やってみよう

あなたの ui を書き換えて、下に表示されているユーザインターフェイスを作成してください。 この Shiny アプリは、基本的な Shiny レイアウト(列なし)を使用し、上に描かれた3つのウィジェットを含んでいることに注意してください。 選択ボックスのその他の値は、アプリ画像の下に表示されています。

モデル解答

Reveal answer

まとめ

Shiny アプリに完全な関数ウィジェットを追加するのは簡単です。

Shiny は、これらのウィジェットを作成するための関数のファミリを提供します。

各関数には名前とラベルが必要です。

ウィジェットの中には、機能を実現するために特定な指示が必要なものがあります。

他のタイプの HTML コンテンツを追加したのと同様に、Shiny アプリケーションにウィジェットを追加します(Lesson 2 参照)

その他

The Shiny Widgets Gallery には、Shinyアプリケーションへ手早くウィジェットを追加するためのテンプレートが用意されています。

テンプレートを使用するには、ギャラリに訪問してください。 ギャラリには Shiny の各ウィジェットが表示されています。各ウィジェットが、入力に応じて値がどのように変化するかが見られます。


参照したいウィジェットを選択し、ウィジェットの下の “See Code” ボタンをクリックします。 ギャラリはウィジェットを説明するサンプル・アプリケーションに移動します。 ウィジェットを使用するには、サンプルの app.R ファイルのコードをコピーして、あなたの app.R ファイルに貼り付けます。

Lesson 4 では、ユーザがウィジェットを変更するたびに更新されるオブジェクトの、reactive 出力にウィジェットを接続する方法を学習します。

Lesson4 へ