RのフレームワークShinyを使ってみる

はじめに

インターンでデータを表示する簡単なアプリをRailsで以下のライブラリを使ってやったんですが,
画面ごとにcontrollerやメソッド作ったり,Rで解析した内容をRailsで表現し直したりで,面倒くさかった思い出があります.
Highcharts - Interactive JavaScript charts for your webpage

たまたまRのWebアプリケーションフレームワークを見つけたので,ほんの触りだけ試してみました..

Shinyいわく,Rは理解しておかないといけないそうなので,RStudioおすすめのページからいくつか学習資源があるため,利用してみるといいかもしれません.

以下の様なこともできます.
word cloudなんかが良い感じです.(画像なのが少し残念)
Shiny - Gallery

環境

今回は以下の環境で行っています.

  • MacOSX 10.9.5 (mavericks)
  • R 3.1.2
  • RStudio

です.
RStudioはRの総合開発です.
以下からダウンロードできます.

ShinyはR 3.1.1以降から利用できます.

本題

まずは,ShinyをRの他のパッケージ同様にインストールします.

> install.packages("shiny")

イメージだけつかむのであれば,以下のコマンド2つでShinyを体感できます.

library(shiny)
runExample("01_hello")

を実行すると,Rのウィンドウが立ち上がります.
Webアプリケーションなので,ブラウザでの操作も可能です.
f:id:another16javac:20141116234630p:plain

デフォルトであればブラウザから
http://127.0.0.1:3834/
にアクセスしても同じように操作することができます.
スライドバーを動かすと右のグラフがインタラクティブに変化します.


またshinyのアプリケーションは以下の2つのRファイルから構成されます.

  • ui.R
  • server.R

おおまかにはui.RでView部分を
server.RがRの計算やプロットを行います.
シンプルですね.

01_helloのコードを丸パクリして自分のファイルとして実行してみます.
ui.Rとserver.Rの上の階層でshinyのアプリを実行します.

shiny_test/server.R
shiny_test/ui.R
となっていればshiny_testのある階層で

runApp("shiny_test")

とすれば立ち上がります.

アプリを立ち上げつつ,ソースコードを書き換えたい場合は,

runApp("shiny_test", display.mode = "showcase")

とするうまくいきます.

まとめ

チュートリアル1章を軽く触っただけですが,難しい概念などもないので,簡単に作れそうでした.