昨天跑了shiny 的程式碼時,有提到他分成ui 和server 兩大塊,今天我們就來實作這兩個檔案,首先,你必須在資料夾內新增兩個R script 檔。
ui script的部分非常簡單,headerPanel 顯示標題,tableOutput 用來顯示表格資料。
library(shiny)
shinyUI(fluidPage(
headerPanel("用戶資料表"),
tableOutput('userTable')
))
Server script 這邊,我們直接執行shinyServer 這個函式,韓式裡面放另一個匿名函式(Closure),有兩個參數input 與output ,input 是網頁上元件的參照值,比如說昨天的例子,使用者拉著bar 調整數字時,這邊可以從input 裡拿到更新後的值,output 則是當你在server 運算完結果時,你可以把結果存進這個參數裡,ui 在顯示資料時,就是根據你的output 拿取對應的資料,因此,在這邊我們這樣定義
library(shiny)
shinyServer(function(input, output) {
user = read.csv("input/user.csv", stringsAsFactors=FALSE)
output$userTable <- renderTable(user)
})
用read.csv 拿取資料,然後將結果存在output$userTable。
最後在R的 command裡輸入runApp() ,就可以看到結果了!
runApp()
結果:
之後的介紹會有越來越多客製化的部分,就慢慢為大家介紹shiny !
Ref
day21