データシステム演習(スライド資料3回)
【概要】Shinyを用いたWeb情報システムの演習資料である。Shinyのギャラリー、仕組み、ウィジェットについて、動画資料とサンプルコードを通じて学習する。ui.RとサーバサイドのようなRによるWebアプリケーション開発の基礎を扱う。
【目次】
1. Shiny のギャラリー
YouTube 動画: https://www.youtube.com/watch?v=POOORv2BFCM
URL: https://shiny.rstudio.com/gallery/
- Shinyは、ビジュアルでインタラクティブである。Webブラウザでボタン、スライダ、メニュー等を操作すると、直ちに結果が得られる。
- データ解析機能はRシステムが担う。
Shiny の機能
- Webページの中に、さまざまな要素を配置できる。
- テーブル
- グラフ
- 画像
- 数式
- ウィジェット
- Word、PDF等でのレポート生成機能もある。
2. Shiny の仕組み
YouTube 動画: https://www.youtube.com/watch?v=-Qb2LNNovZY
Shiny の機能
- Webサーバ
- データ解析機能
- データ解析機能での解析結果をHTML化する機能
- Webブラウザでのユーザからのまたはデータをたはデータをデータをデータをデータをーザからの指示やデータ入力をデータ解析機能に伝える機能
R システムの標準オブジェクト
- R システムのコンソールで、「faithful」と打ち込む。データが出てくる。faithfulはオブジェクト名であり、標準オブジェクトである。
米国イエローストーン国立公園内の間欠泉「オールド・フェイスフル・ガイザー」の噴出持続時間(eruption)と、噴出間隔(waiting)のデータである。
- R システムのコンソールで、「data()」と打ち込む。標準オブジェクトの一覧が表示される。
shiny のインストール
install.packages("shiny")
shiny を動かしてみる
- 次の2つのファイルを作成する。
ファイル名はこの通りにすること。2つのファイルは、同じディレクトリ(フォルダ)に置くこと。
ui.R
library(shiny) shinyUI(fluidPage( sidebarLayout( sidebarPanel( sliderInput("breaks", "please select a number:", min = 1, max = 50, value = 30) ), mainPanel( plotOutput("distPlot") ) ) ))server.R
library(shiny) shinyServer(function(input, output) { output$distPlot <- renderPlot({ hist(faithful[,2], breaks = input$breaks) }) }) - ui.R、server.Rのディレクトリ名(フォルダ名)を確認する。
- R システムのコンソールで、次のように操作する。「C:/Users/user」の部分は、実際にui.R、server.Rがあるディレクトリに読み替える。
library(shiny) runApp("C:/Users/user")
3. Shiny のウィジェット
YouTube 動画: https://www.youtube.com/watch?v=qA-BVSfzbYQ
library(shiny)
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("breaks",
"please select a number:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
textOutput("distPrint")
)
)
))
library(shiny)
shinyServer(function(input, output) {
output$distPrint <- renderText({
input$breaks * 12
})
})
library(shiny)
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel (
numericInput("breaks",
"value = ?", value=0)
),
mainPanel(
textOutput("distPrint")
)
)
))