Shiny 入門

Rで作るShiny Webアプリケーション

Ramnath Vaidyanathan

VP of Product Research

Shiny 入門

Old Faithful間欠泉の待ち時間を示すShinyアプリ。ヒストグラムのビン数を対話的に調整可能

Rで作るShiny Webアプリケーション

Webアプリとは

  • ユーザー入力・操作で更新
  • UI と server で構成
Rで作るShiny Webアプリケーション

Webアプリとは

NY Times「Paths to the White House」WebアプリのGIF

  • 大統領候補ごとのホワイトハウスへの経路を表示します。
Rで作るShiny Webアプリケーション

Webアプリとは

  • DataCamp モバイルアプリ

DataCampモバイルアプリのGIF。練習問題の例を表示

Rで作るShiny Webアプリケーション

Webアプリの仕組み

Webアプリは、ユーザー入力・操作に応じて更新されます クライアントとサーバーが接続され、インターネット上でWebアプリを動かす仕組みの図

Rで作るShiny Webアプリケーション

Shiny とは

Shinyとは何かを示す図。serverコードとUIが分離しつつ連携してアプリを作ることを示す

Rで作るShiny Webアプリケーション

なぜデータサイエンティストがWebアプリを作るのか

IrisデータをSepal.LengthとSepal.Widthでクラスタリングし、3つの明確なクラスタを表示

Rで作るShiny Webアプリケーション

なぜデータサイエンティストがWebアプリを作るのか

plot_kmeans(
  data = iris, 
  x = 'Sepal.Length', 
  y = 'Sepal.Width', 
  nb_clusters = 3
)

IrisデータをSepal.LengthとSepal.Widthでクラスタリングし、3つの明確なクラスタを表示

Rで作るShiny Webアプリケーション

なぜデータサイエンティストがWebアプリを作るのか

library(shiny)
ui <- fluidPage(
  h1('K-Means Clustering App'),
  selectInput('x', 'Select x', names(iris), 'Sepal.Length'),
  selectInput('y', 'Select y', names(iris), 'Sepal.Width'),
  numericInput('nb_clusters', 'Select number of clusters', 3),
  plotly::plotlyOutput('kmeans_plot')
)

server <- function(input, output, session){
  output$kmeans_plot <- plotly::renderPlotly({
    plot_kmeans(iris, input$x, input$y, input$nb_clusters)
  })
}

shinyApp(ui = ui, server = server)
Rで作るShiny Webアプリケーション

なぜデータサイエンティストがWebアプリを作るのか

Irisデータに対するK-meansクラスタリングのWebアプリ

Rで作るShiny Webアプリケーション

練習しましょう!

Rで作るShiny Webアプリケーション

Preparing Video For Download...