My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

R(R言語)のshinyで楽しいアプリ作成。ごく初歩から。

始め方

RStudioから install.packages("shiny")

RStudioから新規プロジェクトを作成。 New Project -> New Directory -> Shiny Web Application を順に選択。 ディレクト名を付けて、Create Projectをクリック。 ui.Rserver.Rの2つのファイルが自動的に作成される。

そのプロジェクト内で、新規ディレクト(フォルダ)を作成。 その中にコードを書いていく。

起動コードは、shiny::runApp("ディレクト(フォルダ)名")

(この構成や実行方法がわからない場合は、最初は、自動的に作成された2つファイルを書き直してもいい(推奨はできないが))。

(また、Run Appをクリックしても実行できる)。

shinyコード

ui.R

library(shiny)

shinyUI(fluidPage(
  titlePanel("みんな、irisを愛してるんだ。"),

  sidebarLayout(
    sidebarPanel(
      helpText("10から150の範囲内で値をスライドできるよ!"),
      
      sliderInput(inputId = "n",
                  label   = "右に動かしたり、左に動かしたりしてみて!",
                  min     = 10,
                  max     = 150,
                  value   = 75)
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
))

server.R

library(shiny)
library(ggplot2)
data(iris)

shinyServer(function(input, output) {

  dataInput <- reactive({
    iris_sel <- iris[sample(1:nrow(iris), input$n), ]
    return(iris_sel)
  })
  
  output$plot <- renderPlot({
    ggplot(dataInput(), aes(x = Sepal.Length, y = Petal.Length)) +
      geom_point(aes(colour = Species))
  })
})

shinyアプリのスクリーンショット

f:id:my_notes:20170722220846p:plain

f:id:my_notes:20170722220915p:plain

f:id:my_notes:20170722220932p:plain

参考文献

パーフェクトR

パーフェクトR