Shiny -Rでつくるウェブアプリケーション!-
shinyでウェブアプリケーションを作成する
Rでは、"shiny"というライブラリを使うことで、ウェブアプリケーションを作成することができます。僕も、最近知って今日初めて少しだけ勉強したので、ここに書いてみます。まだ、少ししか見ていないのですが、結構可能性のあるライブラリだなと思っています。最後の参考という項目にいろいろ書いているので、是非見てください!
ウェブアプリケーションの構成
shinyで作成するアプリケーションは「ui.R」と「server.R」の2つから構成されます。「ui.R」には、ユーザーインターフェースの情報を下記、「server.R」には、サーバーがどのように動作してほしいのかを記述します。
さて、ui.Rは、shinyUI関数からつくります。このshinyUIの中身には、「headerPanel」「sidebarPanel」「mainPanel」の3つの関数から構成します。それぞれが、ウェブ作成で言うところの、ヘッダー、サイドバー、メインコンテンツに対応しています。ここにそれぞれの表示したい部品を設定するということになります。※)ちなみに、いろんな書き方があるようです。
以下、サンプルコードです。
#ui.R library(shiny) #define UI shinyUI( pageWithSidebar( #header headerPanel("Hello Shiny"), #sidebar sidebarPanel( sliderInput( "obs", "Number of observations:", min=0, max=1000, value=500 ) ), #main page mainPanel( plotOutput("distPlot") ) ) )
サーバー側はこんな感じで。
#server.R library(shiny) #define server logic required to plot various variables against mpg shinyServer(function(input, output){ output$distPlot <- renderPlot(function(){ dist <- rnorm(input$obs) hist(dist) }) })
書き終わったら、何らかのフォルダーに保存して、ターミナルから以下のコマンドを打てば、動き始めます。それから、ブラウザーでそのURLを開けば終わりです。
R -e "shiny::runApp('ディレクトリ')"
まとめ
なんか、本当に勉強はじめで、今回のはR上級ハンドブックを参考に書かせていただきました。今、下記のページで勉強中ですのでレベルアップしたら、また書きます。