SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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)をご覧ください。

次のページ
Shiny Serverの始め方 ― 「Ubuntu」版

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

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

TIS株式会社 コーポレート本部 戦略技術センター所属。現在、機械学習技術の研究、機械学習をベースとしたアプリケーションの企画・開発を、PythonやR言語をベースに行っている。 機械学習その他に関する社内研修やオープンな技術勉強会(Tech-Circle)の企画運営にも従事。 もともと、金融系基幹Webシステム開発でのアプリケーションアーキテクチャ/データモデル設計、データベース(Oracle)担当を経...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8148 2014/10/16 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング