CodeZine(コードジン)

特集ページ一覧

R言語のデータ分析レポートをShinyでインタラクティブにしてみる~「環境構築編」

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

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

目次

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としました。

RStudioからShinyプロジェクトの始め方
RStudioからShinyプロジェクトの始め方

 新規プロジェクトを作成すると、「Shiny Webアプリケーション」用のテンプレートファイルがすでに用意されています。あとはShinyをインストールしさえすれば、サンプルアプリとしてShinyアプリを起動することができます。

Shinyのインストール & Shinyの起動

 インストールと起動は簡単です。以下のコマンドをRのコンソールから入力するだけです。

> install.packages("shiny")  # shinyパッケージのインストール
> library(shiny)  # shinyパッケージの読み込み
> runApp()  # Shinyアプリの起動(Shinyプロジェクトのルートディレクトリで実行)

 上記のrunApp()コマンドを実行すると、おそらくブラウザが起動し、以下のようなページが表示されたのではないでしょうか。あとはテンプレートファイルを参考にカスタマイズすることで、あなただけのRのWebアプリを作成することができます。

はじめてのShinyアプリ
はじめてのShinyアプリ

 ちなみに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.Rserver.Rapp.Rというファイル1つにまとめることができるようになりました。

 シンプルなアプリを作る場合はこちらの方法で作ることができます。詳しくはリリースノート(RStudio Blog)をご覧ください。


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

バックナンバー

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

もっと読む

著者プロフィール

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

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

あなたにオススメ

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