Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第17回(後編)

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/11/11 14:00

 本連載では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がお手軽に実現できます。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 白石 康司(TIS株式会社)(シライシ コウジ)

    TIS株式会社 コーポレート本部 戦略技術センター所属。 現在、機械学習技術の研究、機械学習をベースとしたアプリケーションの企画・開発を、PythonやR言語をベースに行っている。 機械学習その他に関する社内研修やオープンな技術勉強会(Tech-Circle)の企画運営にも従事。 もと...

バックナンバー

連載:近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5