前編の記事に引き続きShinyについてご紹介します。前編の記事では「環境構築編」として、作成したアプリケーションをShiny Serverを使って公開するまでの方法をご紹介しました。今回、後編の記事は「アプリケーション作成編」です。Shinyアプリの実装方法を理解して、実際にShiny Server上で動くWebアプリケーションを作ってみましょう。
Shinyで作れるさまざまな分析レポート
Shinyではニーズに合わせてさまざまなタイプの分析レポートが作ることができます。実際のサンプルをShiny公式ギャラリーページで確認してみることにしましょう。まずは以下にアクセスしてみてください。
公式のギャラリーページでは以下のような、さまざまなバリエーションのShinyアプリを一度に見ることができます。
このページのサンプルアプリを一通り見ておくことでShinyで作れるレポートをイメージすることができます。アプリケーションと共にサンプルコードも公開されているので、実際に作るときの参考になるでしょう。
Shinyアプリの基本
では、実際に作る前にギャラリーページで見たシンプルなShinyアプリの仕組みを理解することにしましょう。
アプリの基本構成(ui.Rとserver.R)
Shinyアプリの基本構成は前編で紹介した通り、Viewの役割を担うui.R
とControllerの役割を担うserver.R
の2ファイルになります。ui.R
では画面レイアウトを表現したり、入出力の変数を定義したりします。server.R
ではパラメータをui.R
から入力変数として受け取り、Rの関数を呼び出し、その実行結果をui.R
に戻します。
レポート画面のレイアウト
Shinyアプリの主な作成目的は分析レポートです。その結果として、Shinyアプリはほとんどの場合、単一画面のアプリケーションになります。基本レイアウトは画面全体が左右に分割される形になります。画面左が入力エリア、画面右が出力エリアです。このレイアウトはシンプルで汎用的であるため、多くのシーンでそのまま使えるようになっています。今回は紹介しませんが、レイアウトを自由にカスタマイズすることも、もちろん可能です。
なお、Shinyは内部的にTwitter Bootstrapを利用しています。その恩恵を受けて、それなりのUIがお手軽に実現できます。