R言語のデータ分析レポートをShinyでインタラクティブにしてみる~「アプリケーション作成編」
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第17回(後編)
本連載ではTIS株式会社が提供している技術ブログ「Tech-Sketch」から「コレは!」というテーマをピックアップし、加筆修正して皆様にお届けしております。今回は2回にわたってR言語のWebアプリケーションフレームワークとして進化し続けるShinyを紹介します。
前編の記事に引き続き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がお手軽に実現できます。
この記事は参考になりましたか?
- 近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧
- この記事の著者
-
白石 康司(TIS株式会社)(シライシ コウジ)
TIS株式会社 コーポレート本部 戦略技術センター所属。現在、機械学習技術の研究、機械学習をベースとしたアプリケーションの企画・開発を、PythonやR言語をベースに行っている。 機械学習その他に関する社内研修やオープンな技術勉強会(Tech-Circle)の企画運営にも従事。 もともと、金融系基幹Webシステム開発でのアプリケーションアーキテクチャ/データモデル設計、データベース(Oracle)担当を経...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

