R言語のデータ分析レポートをShinyでインタラクティブにしてみる~「アプリケーション作成編」

CodeZine / 2014年11月11日 14時0分

「Tech-Sketch」出張所」ワードクラウドレポート

 本連載ではTIS株式会社が提供している技術ブログ「Tech-Sketch」から「コレは!」というテーマをピックアップし、加筆修正して皆様にお届けしております。今回は2回にわたってR言語のWebアプリケーションフレームワークとして進化し続けるShinyを紹介します。

 前編の記事に引き続きShinyについてご紹介します。前編の記事では「環境構築編」として、作成したアプリケーションをShiny Serverを使って公開するまでの方法をご紹介しました。今回、後編の記事は「アプリケーション作成編」です。Shinyアプリの実装方法を理解して、実際にShiny Server上で動くWebアプリケーションを作ってみましょう。

■Shinyで作れるさまざまな分析レポート

 Shinyではニーズに合わせてさまざまなタイプの分析レポートが作ることができます。実際のサンプルを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がお手軽に実現できます。



CodeZine

トピックスRSS

ランキング