Más contenido relacionado
La actualidad más candente (20)
Similar a はじめてのShiny (20)
はじめてのShiny
- 2. サイバー系
はじめに
※この発表は個人の見
解であり、所属する組
織の公式見解ではあり
ません。
2
2013/01/26
- 3. サイバー系
自己紹介
u 和田 計也(@wdkz)
u 静岡県袋井市出身
u サイバー系企業でデータマイニングエンジニア職
u 最近は奥華子ばっか聴いてます
u 前職はバイオベンチャー
u バイオマーカ探索してた
u 学生時代は枯草菌の研究
3
2013/01/26
- 4. サイバー系
今日のお話
u Shinyとは?
u とりあえずShiny
u Shinyアプリの配布
u Shinyの実例
4
2013/01/26
- 5. サイバー系
今日のお話
u Shinyとは?
u とりあえずShiny
u Shinyアプリの配布
u Shinyの実例
5
2013/01/26
- 6. サイバー系
(いきなり脱線しますが)Mathematica 9が出ました
u シャイニングウィザードと発音するみたいです
6
2013/01/26
- 7. サイバー系
Mathematica 9が出ました
u MathematicaからRを使うことで
➡こんなインタラクティブなのが出来るみたいです!
7
2013/01/26
- 8. サイバー系
Shiny
u それ出来ます、そうShinyを使えばね
http://glimmer.rstudio.com/wdkz125/theWorld/
8
2013/01/26
- 9. サイバー系
Shinyとは?
u Shinyとは、インタラクティブなWebアプリをR
でチョー手軽に作れるRのライブラリ
Rとnode.jsをwebsocketsで繋いでる感じ
u 2012年11月に初登場
u Joe Chengさん作 (RStudio Inc.)
UseR!2012でwebsocketsの話してた人やー
9
2013/01/26
- 10. サイバー系
ShinyかわいいよShiny
u rApacheとかあったじゃん!?
だがあれはインタラクティブではない
それにrApacheの作者はもう飽きたらしい
すまん
飽きた
UseR!2012でwebsocketsの話してた人やー
10
2013/01/26
- 11. サイバー系
今日のお話
u Shinyとは?
u とりあえずShiny
u Shinyアプリの配布
u Shinyの実例
11
2013/01/26
- 12. サイバー系
とりあえずShiny
u さっきの再び出します
u これを実際にやってみましょう
12
2013/01/26
- 13. サイバー系
Shinyでwebアプリを作る①
u 適当なフォルダを作成
今回の例では「01_plot」とした
u その中に2個のファイルを作成
ⅰ)server.R
ⅱ)ui.R
上記2つのファイル名は必ず
こうしなければいけない!!
13
2013/01/26
- 14. サイバー系
Shinyでwebアプリを作る②
u viewの作成はui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Hello Shiny!"),
sidebarPanel(
numericInput("obs",
"Number of points:",
1000),
sliderInput("mean",
"Mean:",
min=-100, max=100,
value=0),
sliderInput("sd",
"Standard Deviation:",
min=0, max=100, value=1)
),
viewは3つからなる
mainPanel( ⅰ)ヘッダー・・・タイトル
plotOutput("distPlot") ⅱ)サイドバー・・・インプットのとこ
)
ⅲ)メイン・・・アウトプットのとこ
))
14
2013/01/26
- 15. サイバー系
Shinyでwebアプリを作る③
u view部分ui.Rの深入り_sidebar
inputオブジェクトには固有の名前をつけておく
sidebarPanel( (server.Rから入力値を取得するのに使う)
numericInput("obs",
"Number of points:",
1000),
sliderInput("mean",
"Mean:",
min=-100, max=100,
value=0),
sliderInput("sd",
"Standard Deviation:",
min=0, max=100, value=1)
),
サイドバーは、 Inputを書き足すこと
でどんどん増やせる。 Inputに何があ
るかはCRAN上のShinyのReference
Manual等を見るとわかる
15
2013/01/26
- 16. サイバー系
Shinyでwebアプリを作る④
u logicの作成はserver.R
library(shiny) ui.Rで定義した、アウトプットの固有名
shinyServer(function(input, output) {
output$distPlot <-
reactivePlot(function() {
dist <- rnorm(input$obs,
mean=input$mean, ui.Rで定義した、インプットの固有名を
sd=input$sd) 使うことで値を取得できる
hist(dist, prob=TRUE)
lines(density(dist, adjust=2),
lty="dotted", col="blue")
})
})
メインパネルは、server.R内で
reactive 関数をオーバーライドするこ
とでinteractiveな描写ができるようにな
る。reactive 関数に何があるかは
Reference Manual等を見るとわかる
16
2013/01/26
- 17. サイバー系
Shinyでwebアプリを起動する
u カレントフォルダに01_plotフォルダ
があってその中にserver.Rとui.Rと
がある状態でRコンソールから
> library(shiny)
> runApp(“01_plot”)
Listening on port 8100
デフォルトブラウザが起動
17
2013/01/26
- 18. サイバー系
今日のお話
u Shinyとは?
u とりあえずShiny
u Shinyアプリの配布
u Shinyの実例
18
2013/01/26
- 19. サイバー系
Shinyアプリの配布方法_ローカル編
u プログラムごと渡してローカルで起動してもらう
1.フォルダごとzipで固めて渡す。渡された人は解凍してR
起動してshiny::runApp( hogehoge )する
利点:最も汎用性高い
欠点:ITリテラシーの高くない人に、Rを起動してrunApp
してもらうことの絶望感
2.Gistにコードを上げて
shiny::runGist( hogehoge )してもらう
利点:URLを教えるだけでいいのが楽
欠点:社外秘情報を含むものには使えないし、1同様
3.@hoxo_mさん作成のOpenShiny.exeを使う
利点:ITリテラシーに関係なく使ってもらえそう
欠点:Winマシン限定。exeファイルを配布するというドキドキ感
19
2013/01/26
- 20. サイバー系
3.OpenShiny.exeの紹介
u @hoxo_mさんが.netで作った「Shinyをワンクリックで起動する
やつ」
配布方法:適当なフォルダに①「OpenShiny.exe」
②「server.R」③「ui.R」を置いてフォルダごと配布
使用方法:もらった人はOpenShiny.exeをクリックするだけ!!
フォルダ名は
適当なのつけてね
20
2013/01/26
- 21. サイバー系
Shinyアプリの配布方法_サーバ編
u サーバにデプロイしてURLをみてもらう
4.rApacheに組み込んじゃう
無理
即答
5.Shinyホスティングサービス(RStudio.com運営)を使う
楽
β版だからいつ止まっても(有償化しても)おかしくない
社外秘情報を含むものには使えない
6.Shiny-serverを使ってデプロイ
ちょい面倒だけど社内で使うならこれかな
21
2013/01/26
- 22. サイバー系
5.RStudio.com運営shinyホスティングサービス
u まああれだ、ホスティング用のアカウント発行したぜ!って
いうe-mailに書かれてる通りやればできる
1.sshでログインして
2.自分のホームに /ShinyApp/ディレクトリ作って
3.そこに適当なディレクトリ(例えばtheWorld)作って
4.scpでそこにui.Rとserver.Rをアップロード
http://glimmer.rstudio.com/wdkz125/theWorld/
ディレクトリ名
ユーザ名 22
2013/01/26
- 23. サイバー系
6.Shiny-serverについて
http://blog.rstudio.org/2012/12/04/shiny-update/
とりあえずlinux
で動くけどwinと
かmacosxで動
かないよ
オープンソースに
してみたよ!!
有償版も考えてるらしい 23
2013/01/26
- 24. サイバー系
6.Shiny-server有償版についてわかっていること
とりあえず、有償版では何らかの認証ができたらいいな
って思ってるらしい
24
2013/01/26
- 25. サイバー系
6.Shiny-serverのインストール
u Shiny-severインストールに必要なもの
1. R.2.15.0以上
2. Rのshinyライブラリをユーザフォルダじゃないところに
インストール
3. node.js 0.8.16以上
ubuntuの場合
sudo
apt-‐get
install
python-‐software-‐properties
python
g++
make
sudo
add-‐apt-‐repository
ppa:chris-‐lea/node.js
sudo
apt-‐get
update
sudo
apt-‐get
install
nodejs
npm
u Shiny-severのインストール
sudo
npm
install
-‐g
shiny-‐server
sudo
useradd
-‐r
shiny
sudo
mkdir
-‐p
/var/shiny-‐server/www
sudo
mkdir
-‐p
/var/shiny-‐server/log
25
2013/01/26
- 26. サイバー系
6.Shiny-serverの起動
u 以下のディレクトリに適当な名前のディレクトリ作成して
そこにui.Rとserver.Rとをコピって
/var/shiny-server/www/AppName
u 起動
sudo shiny-server
u ブラウザからアクセス
http://<hostname>:3838/AppName
26
2013/01/26
- 27. サイバー系
今日のお話
u shinyとは?
u とりあえずshiny
u shinyアプリの配布
u shinyの実例
27
2013/01/26
- 28. サイバー系
shinyの実例デモ
u デモで使うデータはもちろんiris
irisに関する詳しい資料は以下を参照して下さい➡
「irisの正体 (R Advent Calendar 2012 6日目)」
http://d.hatena.ne.jp/tsutatsutatsuta/20121206/1354737461
28
2013/01/26
- 29. サイバー系
shinyの利用例
tabで
いろいろ
選べる
29
2013/01/26
- 30. サイバー系
shinyの利用例
summ
aryの
tabを
選択す
ると
もっと下のほうにsummary結果も出てるんだけど、見えんな
30
2013/01/26
- 31. サイバー系
shinyの利用例
ここでデータのレンジを絞ると、下のグラフ中のデータポイント
も変化する
31
2013/01/26
- 32. サイバー系
shinyの利用例
WebG
L使って
3次元p
lotも出
来る
32
2013/01/26
- 33. サイバー系
shinyの利用例
決定木
選んで
みたり
33
2013/01/26
- 34. サイバー系
shinyの利用例
GLM選
んでみ
たり
34
2013/01/26
- 35. サイバー系
shinyの利用例
サイド
バーも
ックス チェッ
オンオ クボ
変わる フで動
よ 的に
35
2013/01/26
- 36. サイバー系
shinyのTips
u staticなページ(タブ)を作りたい
HTML()関数でhtmlを直書きする
u インタラクティブすぎる
submitButtonを配置すれば、ボタン押すまで反映しない
u サイドバーパネルもインタラクティブにしたい
conditionalPanelを使う
conditionalPanel(condition= input.@@=true ,,,)
u サイドバーパネルをもっとインタラクティブにしたい
ui.R中はuiOutput("rice") みたいにしておいてserver.Rで
output$rice <- reactiveUI(function(){
selectInput( gets , dandy , choice=1:10, selected=1)
})
ってすればいい。↑ここでinputの値取得して条件分岐とかバリバリ書く
36
2013/01/26
- 37. サイバー系
shinyのここがイマイチ
u 日本語一切使えない。コメントにすら日本語が含まれると動かない
u 左にサイドバーパネル、右にグラフパネルという構図が固定
幅とか変えたいのに....
u レンジスライダーのレンジを保持して左右に動いて欲しい
u レンジスライダー、キーボードの矢印で操作できない
u レンジスライダーにintegerの値しか使えない
u submitButtonをcheckboxで出したり消したりしたい
37
2013/01/26
- 38. サイバー系
参考文献
u shiny
https://github.com/rstudio/shiny/
u shiny-server
https://github.com/rstudio/shiny-server
u tutorial
http://rstudio.github.com/shiny/tutorial/
u google group
https://groups.google.com/forum/?fromgroups#!forum/shiny-discuss
u shinyでrglを使う
https://github.com/trestletech/shiny-sandbox/tree/master/rgl
u hoxo_mさんのShinyアプリをワンクリックで起動するやつ
http://d.hatena.ne.jp/hoxo_m/20121122/p1
u バタデ先生の、みんなでシャイニイイイイイイイイイイイイイイイ
http://d.hatena.ne.jp/dichika/touch/20130118/1358470135
38
2013/01/26
- 39. サイバー系
まとめ
1. シャイニングウィザードを紹介して
2. ついでにshinyも紹介して
3. shinyアプリの配布方法も紹介して
4. 最後にデモった
39
2013/01/26