RのWebフレームワーク「Shiny」を高速で体験する
RStudioでのグラフィックス作成に慣れてきて、次はサーバーサイドのRを書こうと思い公式ページを覗いてみると、RStudio IDE、RStudio Serverに加えて「Shiny」というRをWeb上で動かすためのフレームワークが登場してることを知り、チュートリアルをひと通り勉強したので、この記事でShinyの利便性について少しだけ触れてみようと思います。
1. Shinyをインストールする
この記事は、RStudio IDEがあなたのパソコンにインストールされていることを前提に記述しています。
もしRStudioが入っていない場合は、こちらのR公式サイトからDownloadしてください。インストール後に細かい設定はいりません。すぐに試してみましょう!
RStudioのコンソールから以下のコマンドを入力してインストールします
install.packages("shiny")
インストールが完了したら、ライブラリを読み込みましょう
library("shiny")
2. サンプルアプリを起動する
Shinyには、ライブラリのインストール時にサンプルアプリケーションが幾つか付属しており、コマンドを入力することによって簡単にサンプルを実行することができます。今回は3つのアプリケーションを起動して、Shinyを使ってどのようなWebアプリケーションを作ることができるのか見て行きましょう。
ライブラリを読み込んだら、すぐにサンプルを動かすことができます。以下では、サンプル起動のコマンドと、アプリケーションの画面、どんなアプリかの説明かをセットで紹介します。
(i) Example 1
- コマンド
runExample("01_hello")
- 実行画面
- 説明
こちらのアプリケーションは、左にあるスライダーで設定した値だけ乱数を発生させ、それを左のヒストグラムに表示するものです。中心極限定理によって乱数が正規分布に収束していく様子がわかります。
ちなみにコマンドを実行すると、自動的にブラウザが立ち上がってアプリケーションの画面が見れると思いますが、もし自動的にブラウザが立ち上がらない場合は、自分でhttp://localhost:7850/にアクセスしてみてください。
また、アプリケーションを終了するには、RStudioのコンソールに戻って
キーを押して終了してください。
(ii) Example 2
- コマンド
runExample("02_text")
- 実行画面
- 説明
Example1ではデータをヒストグラムによって可視化しましたが、このアプリケーションでは3種類のデータテーブル、そして代表値を表示してくれます。表示するのは一般的な代表値で、上から「最小値、第一四分位点、中央値、平均値、第三四分位点、最大値」になります。
代表値としては、他にも「歪度、尖度」などもありますが、ここでは表示されていません。他の代表値を追加されたい方は、ぜひshinyの具体的なプログラム方法を学んでみてください。(びっくりするほど簡単、簡潔に書けます)
(iii) Example 3
- コマンド
runExample("03_reactivity")
- 実行画面
- 説明
先ほどのサンプルとの変更点はほとんど無いのですが、左の入力画面の一番上に、タイトルを入力するためのテキストフィールドがあります。このアプリケーションでは、テキストフィールドに文字を入力すると、即座に右の画面に適応される様子を実証しています。
つまり、Shinyは非同期なアプリケーションを作成可能で、何度もHTTPリクエストを処理しなくてもよく、Webアプリケーションをサーバー上で運営するのが簡単であることが分かります。
3. まとめ
いかがでしたでしょうか? 今回はサンプル・アプリケーションしか紹介しませんでしたが、実際に自分で同様のWebアプリケーションを作成する際も、shinyを使えばとても簡単にできます。
以下のリンクにチュートリアルが掲載されているので、shinyを気に入られた方はぜひ勉強してみてください!