Shinyアプリの作り方
ShinyアプリはRStudioからすぐに始めることができます。以下でShinyを使ったWebアプリの作り方について説明します。
Shiny Webプロジェクトの作成
どちらも同じRStudio Inc.が開発しているプロダクトということもあり、ShinyはRStudioに統合されています。そのため、RStudioをすでにインストールされている方は、RStudioから「Shiny Webアプリケーション」として新規プロジェクトを作成するだけでShinyを始められます。
手順は次のとおりです。RStudioのメニューの「New Project」を選択し、「Create project from: 」については「New Directory」 を選び、「Project Type」として「Shiny Web アプリケーション」を選びましょう。
今回ディレクトリ名(プロジェクト名)はshiny-first
としました。
新規プロジェクトを作成すると、「Shiny Webアプリケーション」用のテンプレートファイルがすでに用意されています。あとはShinyをインストールしさえすれば、サンプルアプリとしてShinyアプリを起動することができます。
Shinyのインストール & Shinyの起動
インストールと起動は簡単です。以下のコマンドをRのコンソールから入力するだけです。
> install.packages("shiny") # shinyパッケージのインストール > library(shiny) # shinyパッケージの読み込み > runApp() # Shinyアプリの起動(Shinyプロジェクトのルートディレクトリで実行)
上記のrunApp()
コマンドを実行すると、おそらくブラウザが起動し、以下のようなページが表示されたのではないでしょうか。あとはテンプレートファイルを参考にカスタマイズすることで、あなただけのRのWebアプリを作成することができます。
ちなみにShinyアプリとして表示されたヒストグラムは、アメリカのイエローストーン国立公園にある間欠泉が噴出する間隔(分)の頻度を観測したものです。ヒストグラムから分かるのは、おおよそ75~85分間隔で噴出する回数が一番多いようです。この間欠泉データfaithfulの情報についてもっと詳しく知りたい場合は、Rのコンソールからhelp(faithful)
、もしくは、faithful
と入力してみてください。
そして、ここがShinyの肝です。画面左のスライダーを動かしてみてください。すると、画面右のヒストグラムがスライダーを動かすのと連動してリアルタイムに変化します。内部的にはRのhist()
関数がスライダーを動かすごとに、指し示す値をパラメータとして受け取り、呼び出されます。その実行結果が動的に描画されています。
その他のサンプルShinyアプリについて
なお、Shinyパッケージの以下のコマンドを実行すると、サンプルに用意されているShinyのデモを見ることができます。
> runExample("01_hello") # 「01_hello」というサンプルを実行
「01_hello」は上記で紹介した、イエローストーン国立公園の間欠泉のヒストグラムと同じものです。「01_hello」以外にも、サンプルは多数用意されています。すべてのサンプルの一覧はrunExample()
のコマンドで取得できます。
Shinyアプリのプロジェクト構成
Shinyアプリは以下のような構成になります。
shiny-first/ # プロジェクトのルートディレクトリ ├── shiny-first.Rproj # (任意) RStudioが使用するRプロジェクトのメタ情報 ├── ui.R # (必須) ShinyアプリのUIを定義 ├── server.R # (必須) Shinyアプリの処理ロジックを定義 └── global.R # (任意) ui.Rとserver.Rとの共通の処理を定義
Shinyアプリの基本構成は、Viewの役割を担うui.R
と、Controllerの役割を担うserver.R
の2ファイルになります。
なお、Shinyの0.10.2版からは、ui.R
とserver.R
をapp.R
というファイル1つにまとめることができるようになりました。
シンプルなアプリを作る場合はこちらの方法で作ることができます。詳しくはリリースノート(RStudio Blog)をご覧ください。