2021年4月27日 星期二

R shiny - reactable 互動表格視覺化


主題

R在使用 shiny 套件建立網頁應用程式時,如果希望表格可以產生互動視覺化效果,此時可以使用 reactable 套件[1]。詳細使用方法參考 reactable 官網[2]之說明。本篇文章範例3使用sparkline套件以繪製表格折線圖[3]

使用觀念

1. reactable 套件使用五動式表格的函數為 reactable。

2. 如果希望配合 shiny 套件使用,則使用以下二種情形:
  1. ui.R 使用 reactableOutput 函數
  2. server.R 使用 renderReactable 函數
3. 表格功能:
  • 定義欄名稱 Column definitions
  • 排序 Sorting
  • 排序與自定NA值 Sorting with NA
  • 篩選 Filtering
  • 搜尋 Search
  • 分頁大小 Pagination
  • 群組與匯總 Grouping and Aggregation
  • 欄格式(貨幣,百分比,日期格式等) Column formatting
  • 表格加上繪圖(直方圖,盒鬚圖,線圖等) Columns plot
  • 佈景主題 Theme

關鍵字

#shiny
#reactable
#reactableOutput
#renderReactable 

R程式碼下載

R程式碼

# title    : reactable package
# date     : 2021.04.27
# author   : Ming-Chang Lee
# email    : alan9956@gmail.com
# RWEPA    : http://rwepa.blogspot.tw/
# Encoding : UTF-8

# 範例1 - 表格應用
library(reactable)

reactable(CO2)

# 範例2 - shiny 加上表格應用
library(shiny)

library(reactable)

ui <- fluidPage(
  titlePanel("reactable package example"),
  reactableOutput("table")
)

server <- function(input, output, session) {
  output$table <- renderReactable({
    reactable(CO2)
  })
}

shinyApp(ui, server)

# 範例3 - 表格加上折線圖 sparkline

library(dplyr)     #進行 %>% 操作
library(sparkline) #繪製表格折線圖
library(reactable)

mydata <- iris %>%
  group_by(Species) %>%
  summarise(width = list(Petal.Width)) %>%
  mutate(boxplot = NA, sparkline = NA)

reactable(mydata, columns = list(
  width = colDef(cell = function(values) {
    sparkline(values, type = "bar", chartRangeMin = 0, chartRangeMax = max(iris$Petal.Width))
  }),
  boxplot = colDef(cell = function(value, index) {
    sparkline(mydata$width[[index]], type = "box")
  }),
  sparkline = colDef(cell = function(value, index) {
    sparkline(mydata$width[[index]])
  })
))
# end

參考資料


2021年4月12日 星期一

2021-R軟體與Shiny Web應用程式設計


課程目標:

以R語言做為Web服務平台,使學員熟悉使用shiny套件建立Web化服務應用。

Shiny套件的主要功能 (revised from: Hadley Wickham, 2021)

1. 建立企業級儀表板

2. 互動式篩選資料分析

3. 使用視覺化與互動式溝通

4. 建立自我資料分析的工作流程

5. 建立互動式統計教學與資料科學概念,調校參數,理解結果之改變.

6. 提供決策者探索式資料分析等企業智慧計算應用.


課程大綱:

1.基礎shiny程式設計

1.1 shiny套件簡介

1.2 建立第一個shiny網頁程式

1.3 資料物件處理(tidyr, dplyr, stringr套件)

1.4 輸入控制項與檔案上傳

1.5 輸出控制項(文字,表報,圖形ggplot2, leaflet)

1.6 案例示範與操作練習(一)

2.進階shiny程式設計

2.1 版面配置

2.2 HTML UI

2.3 反應型函數(Reactive function)

2.4 shape檔案的輸入與處理

2.5 地理資料-shiny進階網頁程式

2.6 案例示範與操作練習(二)

上課日期:

2021年5月8,9日

報名網頁:

https://www.iiiedu.org.tw/courses/msa331t2101/

2021/5/3前報名即可享優惠價!

#shiny

#visualization

#training

#ggplot2

#leaflet