iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
自我挑戰組

使用R進行探索式資料分析之初探系列 第 25

R互動式網頁_DataTable

  • 分享至 

  • xImage
  •  

在前面有介紹到Shiny套件在網頁呈現資料表格的方式,當然是很陽春!而今天我們在開發Web時都會常做的頁面,將資料呈現在網頁上,可讓使用者選擇整個頁面總共出現幾筆資料,並有關鍵字可進行搜尋,網頁的下方有資料的分頁。

我相信!在開發Web頁面時這些都是很基本的功能,甚至有時使用者會要求依據他篩選的資料要求,下載成csv或Execl檔案,供它們後續的加值應用。

因此本篇將以R的資料集iris進行,首先也是開一個新的資料夾,並將ui.R及server.R開新檔分別命名,當然也可以將之前幾篇的檔案複製過來;接下來安裝套件DT,而DT套件是甚麼?DT套件使得JavaScript中的方法能在R中被應用,並將矩陣或者數據表在網頁中可視化成表格,程式碼如下
ui.R程式

library(shiny)
library(DT)
ui <- fluidPage(
  titlePanel("Data Table Download"),
  sidebarLayout(
    sidebarPanel(
      
    ),
    mainPanel(
      DT::dataTableOutput("iris")
    )
  )
)

server.R程式

library(shiny)
server <- shinyServer(function(input,output){
  output$iris <- DT::renderDataTable({
    iris
  })
})

https://ithelp.ithome.com.tw/upload/images/20200925/20120756spkkx5BzHu.jpg

老實說真的很簡單!做出來東西雖然不很炫!但簡單乾淨,當然有很多參數可調,可使用?DT()就會有眾多參數進行調整,接下來就是依據使用者的篩選後的結果下載,目前我們的搜尋針對項次做搜尋,而搜尋的結果可下載成csv檔案,本次只要修改server.R即可,ui.R維持原樣程式碼如下

library(shiny)
server <- shinyServer(function(input,output){
  output$iris <-  DT::renderDataTable({
    DT::datatable(iris,
                  extensions = 'Buttons',
                  options = list(
                    dom = 'Blfrtip',
                    buttons = 
                      list(
                        list(
                          extend = 'csv',
                          buttons = c('csv'),
                          exportOptions = list(
                            modifiers = list(page = "current")
                          )
                        ))
                  )
    )
  })
  
})

其中程式碼中Blfrtip是有意義不是單純字串,解釋如下

l- l更改輸入量
f- f過濾輸入
t-有t能力!
i-表i信息摘要
p- p攪拌控制
r- r處理顯示元素

成果如下
https://ithelp.ithome.com.tw/upload/images/20200925/20120756ftoQcugV6A.jpg

https://ithelp.ithome.com.tw/upload/images/20200925/2012075698ELAVEeB7.jpg

下一篇見!


上一篇
R互動式網頁_Shiny Plot
下一篇
R互動式網頁_關聯規則
系列文
使用R進行探索式資料分析之初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言