2021年10月28日 星期四

R shiny - 品質管制圖(quality control chart)應用

主題

中華民國品質學會第57屆年會暨2021國際品質管理研討會

論壇:開源AI品質工具-統計品管與實務應用

日期:2021年11月6日(六)

大綱

  1. Python 實作DoE常用的分析方法
  2. Shiny 套件簡介
  3. 互動式統計品管網頁實作
  4. Q & A

教材 PDF:

https://github.com/rwepa/csq_spc

本專案使用免費R語言與免費 shiny 套件, 實作品質管制圖(quality control chart)應用.











下載資料

1. spc_wafer_with_header.csv (with header):

https://github.com/rwepa/shiny_spc/blob/main/data/spc_wafer_with_header.csv

2. spc_pistonrings_without_header.csv (without header)

https://github.com/rwepa/shiny_spc/blob/main/data/spc_pistonrings_without_header.csv

線上示範

https://rwepa.shinyapps.io/shiny_spc/

套件

shiny : Web Application Framework for R (網頁服務框架)

shinythemes: Themes for Shiny (佈景主題)

DT : DataTables JavaScript library (表格呈現)

qcc : Quality Control Charts (品質管制圖的數據計算)

plotly: Create Interactive Web Graphics via 'plotly.js' (互動式圖表)

R程式碼下載

https://github.com/rwepa/shiny_spc

# end

2021年7月17日 星期六

R data analysis, visualization, machine learning course






近日公佈二門課程,歡迎各位R友參考。

課程1:R入門資料分析與視覺化應用

時間:7小時28分鐘,附中文字幕

網址:https://mastertalks.tw/products/r?ref=MCLEE




課程2:R 商業預測應用

時間:8小時53分鐘,附中文字幕

網址:https://mastertalks.tw/products/r-2?ref=MCLEE

R語言入門及應用組合包

二門合購優惠價77折:4,728元 (價格以網站公告為主)









#R

#tutorial

#visualization

#bigdata

#machine learning

#prediction

#programming

2021年7月3日 星期六

R音樂創作-gm套件

主題










R可以使用 gm 套件建立音樂。gm亦可內嵌於R Markdown.

感謝 Alpha Lee 提供音樂簡譜:

Youtube: https://youtu.be/Jx2YmiNm-6o

Piano : Moonlight Sonata Op.27 No.2 (Beethoven)

使用方法

1. 下載免費跨平台(Windows, Mac, Linux)譜曲軟體 MuseScore, 下載網址 https://musescore.org/zh-hant/download

2. 下載 gm 套件

3. 使用 Music, Line建立音樂, 最後以 show 顯示樂譜.

4. 使用時, 按下 [三角形] 播放鍵即可播放音樂.

關鍵字

#music

#MuseScore

#gm

執行成果

1. 內建範例

MP3下載: https://github.com/rwepa/DataDemo/blob/master/music/gm-sample1.mp3







2. Alpha Lee 提供音樂簡譜








Youtube: https://youtu.be/N0PK1u5ZfBE


R程式碼下載

https://github.com/rwepa/DataDemo/blob/master/gm_demo.R

R程式碼

# title      : gm-音樂創作

# author  : Ming-Chang Lee

# email   : alan9956@gmail.com

# RWEPA : http://rwepa.blogspot.tw/

# GitHub  : https://github.com/rwepa


# 載入 gm

library(gm)

# sample 1 - 內建範例

# 建立 Music 對象

m <-

  # 初始化 Music 對象

  Music() +

  # 加上 4/4 拍號

  Meter(4, 4) +

  # 加上一條包含四個音的聲部

  Line(list("C5", "D5", "E5", "F5"), list(1, 1, 1, 1))

# 轉化成樂譜和音訊

show(m, c("score", "audio"))

# sample 2 -  Alpha Lee  提供

t <- tuplet("quarter", Tupler(3, unit = "eighth", take = "eighth"))

z1 <- Line(list("G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","G#3", "C#4", "E4","A3", "C#4", "E4","A3", "C#4", "E4","A3", "D4", "F#4","A3", "D4", "F#4","G#3", "B#3", "F#4", "G#3", "C#4", "E4", "G#3", "C#4", "D#4", "F#3", "B#3", "D#4","E3", "G#3", "C#4",c("C#4", "E4")),list(t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t,t, t, t, t, t, t, t, t, t,3), name = "a")

z2 <- Line(list(c("C#2", "C#3"), c("B1", "B2"),c("A1", "A2"), c("F#1", "F#2"),c("G#1", "G#2"),c("G#1", "G#2"),c("C#2", "G#2", "C#3")), list(4, 4, 2, 2, 2, 2, 4), to = "a", as = "staff", name = "b")

m1 <- Music() + Tempo(48)+ Meter(4, 4) + z1 + z2 + Key(4) 

m1 <- m1 + Clef("G", to = "a") + Clef("F", to = "b") 

show(m1, c("score", "audio"))

# end

2021年6月21日 星期一

免費課程~110年「數位轉型與營運智慧」教師研習

壹、課程概述

隨科技進步帶來第四波工業革命,在IOT物聯網、AI人工智慧、進階資料分析及混合實境等科技創新,已為人類工作、生活與娛樂帶來無限可能。因應新數位科技解構與發展下,企業未來朝科技應用變身,才得以隨產業生態變化而持續成長。加上新科技推動全球產業再分工,無論任何產業,未來的銷售與製造均直接與消費市場連動,企業組織與營運模式朝數位發展已為趨勢。因此本活動期透過產業數位轉型推動專家與模範企業進行產業經驗分享,同時結合經濟部iPAS營運智慧分析師認證教學,讓技專校院教師與企業直接交流,獲取產業新知,進而回饋校園教育,促進產學合作之機會。

貳、辦理單位

一、主辦單位:教育部促進產學連結合作育才平臺-國立臺北科技大學執行辦公室

二、協辦單位:財團法人工業技術研究院、中央大學管理學院

三、合作公協會/企業:臺灣資料科學與商業應用協會、洽吧智能股份有限公司、資誠聯合會計師事務所、台灣電商發展協會、永聯物流開發股份有限公司

<報名已截止>

參、課程說明

一、課程日期:7/14(三)、7/15(四)、7/16(五)

二、課程時間:9:20-17:00、9:20-17:00、8:50-17:00

三、課程地點:Google Meet 線上會議 (https://meet.google.com/mvv-mppj-qmp)

四、參加資格:在職之技專校院教師、技術型高中老師

五、結訓要求:本次研習課程為期3 天,凡全程參與一天(含)以上之研習課程,於課程結束後,核發研習時數證明。

六、報名日期:即日起至7/7止

註:凡報名完成便為報名成功,如無法錄取會提前以E-mail通知。

主辦單位保留報名名額資格審核權,以及修改、變更活動內容及額滿截止報名之權利。

肆、課程大綱(※本研習課程內容、時間及地點,依實際狀況彈性調整)

第一天 7/14(三)

課程地點:Google Meet 線上會議 (https://meet.google.com/mvv-mppj-qmp)

課程內容:

1-大專院校該如何培育營運智慧分析人才?(講師:中央大學管理學院 許秉瑜 院長)

2-iPAS初級營運智慧分析師能力課程-營運智慧基本知識 (講師:臺灣資料科學與商業應用協會 李明昌 常務理事)

3-iPAS初級營運智慧分析師能力課程-基礎資料分析

第二天 7/15(四)

課程地點:Google Meet 線上會議 (https://meet.google.com/mvv-mppj-qmp)

課程內容:

1-iPAS營運智慧分析師介紹 (講師:工研院產業學院能力鑑定小組 陳善嶸 專員)

2-iPAS初級營運智慧分析師能力課程-經營管理基本知識 (講師:臺灣資料科學與商業應用協會 李明昌 常務理事)

3-iPAS初級營運智慧分析師能力課程-數位化企業資訊工具基本知識

第三天 7/16(五)

課程地點:Google Meet 線上會議 (https://meet.google.com/mvv-mppj-qmp)

課程內容:

1-人工智慧與數位轉型 (講師:洽吧智能股份有限公司 趙式隆 董事長)

2-資誠聯合會計師事務所的數位轉型-新時代‧新技能 (講師:資誠聯合會計師事務所 曾博昇 會計師)

3-如何運用雲端運算加速企業數位轉型 (講師:台灣電商發展協會 曾昭維 理事長) 

4-如何讓物流業更簡單、聰明 、永續 (講師:永聯物流開發股份有限公司 供應鏈管理處 穰穎堅 資深副總)

五、聯繫窗口

國立臺北科技大學產學合作處產學推動組-教育部產學連結執行辦公室 黃雅慧專員

Tel:(02)2771-2171分機6020

E-mail:hyh@ntut.edu.tw


#iPAS

#營運智慧分析師

#營運智慧

#數位轉型

#Operations Intelligence

#OI

#Digital Transformation

#DX

2021年6月6日 星期日

R與實驗設計應用 (Design Of Experiments with R)

主題

R與實驗設計應用


關鍵字
#R
#DOE
#Design Of Experiments
#RSM
#readxl
#dplyr
#rsm

大綱

  1. 實驗設計簡介
  2. R, RStudio簡介
  3. 一因子實驗-變異數分析
  4. 隨機化完全區集設計
  5. 因子設計
  6. 2^3 因子設計
  7. 反應曲面法

執行成果










  • 第1章 實驗設計簡介, 第2章 R, RStudio簡介-11分27秒

https://youtu.be/lJupX5c3hi4

  • 第3章.一因子實驗-變異數分析-23分10秒

https://youtu.be/9omw9Aet0a8

  • 4.隨機化完全區集設計-10分53秒

https://youtu.be/6kA_kiPl6w4

  • 5.因子設計-14分22秒

https://youtu.be/izT6yq3NBlI

  • 6.2^3因子設計-10分37秒

https://youtu.be/U11f7VL5KbM

  • 7.反應曲面法-10分12秒

https://youtu.be/bUCbQxdXe7M


程式碼,講義下載

Github: https://github.com/rwepa/DataDemo/blob/master/R_Design_Of_Experiments.R

PDF: https://github.com/rwepa/DataDemo/blob/master/R_Design_Of_Experiments.pdf

參考資料

  1. R基礎篇 - 國立台北商業技術學院上課教材(238頁,2011.7.4), http://rwepa.blogspot.com/2013/01/r-201174.html
  2. R入門資料分析與視覺化應用(中文,字幕), https://courses.mastertalks.tw/courses/R-teacher
  3. R商業預測與應用(中文,字幕), https://courses.mastertalks.tw/courses/R-2-teacher
  4. 圖例中顯示點線混合符號legend, http://rwepa.blogspot.com/2017/08/legend.html
  5. 5.Douglas C. Montgomery, Design and Analysis of Experiments, 10th Edition, Wiley, 2020. https://www.amazon.com/Design-Analysis-Experiments-Douglas-Montgomery-ebook/dp/B07ZN7SRT5

# end

2021年5月29日 星期六

Arduino + Python tkinter 套件控制LED應用

主題

Arduino + Python tkinter 套件控制LED應用

大綱

  1. Python 簡介
  2. 視窗設計 - tkinter 套件
  3. Arduino 簡介
  4. Python + Arduino - LED 實作

需求

  1.  Arduino 模組
  2. Python IDE 軟體, 本案採用  Spyder
  3. LED 1個
  4. 免費軟體 Arduino IDE

執行成果

Arduino + Python tkinter 套件控制LED應用

Youtube https://youtu.be/LjgFIm1S7tw

程式碼,講義下載

Github: https://github.com/rwepa/arduino_python_tkinter

PDF: https://github.com/rwepa/arduino_python_tkinter/blob/main/python_arduino-2021.05.28.pdf

參考資料

  1. Python 程式設計-李明昌 免費電子書 - PDF 分享, 220頁, http://rwepa.blogspot.com/2020/02/pythonprogramminglee.html
  2. Python與Arduino, http://andrewpythonarduino.blogspot.com/2018/04/python13-led.html
  3. NARESH KUMAR T & THILEEPAN S, Arduino + Python Programming for Robots, 2020.
  4. tkinter - Python interface to Tcl/Tk, https://docs.python.org/3/library/tkinter.html
  5. Python GUI examples (Tkinter Tutorial), https://likegeeks.com/python-gui-examples-tkinter-tutorial/

# end

跟著那道光 - Arduino Car

主題

本專案說明使用 Arduino car 加上光敏電阻應用。








需求

1. Arduino 模組

2. Arduino Car 模組

3. 光敏電阻 2個

4. 免費軟體 Arduino IDE

執行成果

https://youtu.be/SXyq6urlTQo

程式碼,講義下載

https://github.com/rwepa/arduino_car

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

2021年3月17日 星期三

R-4.0.4-Patched 終結中文亂碼

更新

2021.4.1 

更新至最新版本至R-4.0.5, Windows and Mac 使用時皆不會有中文亂碼.

問題

近日 Windows 系統更新至最新版本 R-4.0.4, 使用時會有中文亂碼問題???











方法

下載最新更新檔即可解決此問題.

檔名: R-4.0.4patched-win.exe

參考: https://cran.r-project.org/bin/windows/base/rpatched.html

下載: https://cran.r-project.org/bin/windows/base/R-4.0.4patched-win.exe












關鍵字

#R

#debug

2021年3月15日 星期一

R shiny 互動模型 crosstalk 套件








主題

R在使用 shiny 套件建立網頁應用程式時, 如果希望二個控制項 (widgets)產生互相聯動效果, 此時可考慮使用 crosstalk 套件[1]. 例如:圖形上選取一個或一個以上之範圍,旁邊自動篩選資料值. 詳細使用方法參考crosstalk官網[2]之說明. 此互動式功能與 plotOutput("plot1", click = "plot_click")[3]功能類似. 本範例說110年2月年粗出生率(%)之互動式繪圖, 資料來源[4].

使用觀念

  1. crosstalk 套件使用 R 的API稱為SharedData R6 class
  2. 將SharedData物件傳遞給資料框或其他R物件,即可產生互動連結之效果。
  3. 支援使用 htmlwidget 套件客製化互動控制項。

關鍵字
#shiny
#crosstalk
#interactive plot
#leaflet

套件
library(readxl)    # read_excel 匯入 Excel 資料檔
library(crosstalk) # SharedData 互相聯動效果
library(leaflet)   # leaflet    互動式地圖
library(DT)        # datatable  互動式表格
library(htmltools) # tags       HTML標籤

執行結果











R程式碼下載


R程式碼


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

library(readxl)    # read_excel
library(crosstalk) # SharedData
library(leaflet)   # leaflet
library(DT)        # datatable
library(htmltools) # tags

# 匯入資料
# https://github.com/rwepa/DataDemo/blob/master/taiwan_birth.xlsx
birth <- read_excel("taiwan_birth.xlsx")

# 將資料轉換為 SharedData 物件
df <- SharedData$new(birth[c("city", "annua_crude_birth_rate", "longitude", "latitude")])

# 建立標題標題
rr <- tags$div(
  HTML('<a href="http://rwepa.blogspot.com/">110年2月粗出生率%</a>')
)

# 建立2行互相聯動效果
bscols(widths = c(5, 7),
  leaflet(df, height=700) %>% 
    addTiles() %>% 
    addMarkers(popup = ~city) %>% 
    setView(lng = 120.9876, lat = 23.8387, zoom = 7) %>%
    addControl(rr, position = "topright"),
  datatable(df,
            rownames = FALSE,
            colnames = c("地區","110年2月台灣粗出生率%", "經度", "緯度"),
            options = list(pageLength = 10,
                           searching = FALSE),
            height=600)
)
# end

2021年3月2日 星期二

Python統計分析與最佳化計算課程

課程介紹:

課程採用免費Python軟體為主,主題包括基礎的資料結合、資料摘要與繪圖技巧、統計檢定、邏輯斯迴歸、高維度影像資料計算、線性與非線性最佳化應用。課程將透過案例示範與實際操作練習以增進學習成效。

課程目標:

使學員熟悉Python語言進行統計分析與最佳化計算,課程包括Python與資料庫連結、資料摘要與繪圖技巧、統計分析、線性與非線性模型最佳化計算。

報名: https://www.beclass.com/rid=2443e965faa62b76ba01



2021年1月21日 星期四

水文建模shiny應用 (Hydrological Modelling with shiny app)

主題

R在水文模型具有廣泛應用,包括水文資料的讀取與下載,水文資料分析與建模,詳細可參考 CRAN-Hydrology  [https://cran.r-project.org/web/views/Hydrology.html]。 其中 AirGR套件提供水文建模工具,該套件包括降雨徑流模型,積雪和融雪模型以及相關的校準和評估功能。另 airGRteaching套件,將建模結果以互動式網頁呈現,提供使用者更進一步的水文分析與應用。如果需修改為職場的內容,可修改 "C:\Users\88697\Documents\R\win-library\4.0\airGRteaching\ShinyGR"資料夾的 ui.R,server.R 二個檔案。

執行結果1: 水文模型


執行結果2: 水文模型綱要圖





關鍵字

Hydrological Modelling 
# shiny

套件

1. airGR 套件 - 建立水文建模 https://cran.r-project.org/web/packages/airGR/index.html
2. airGRteaching 套件- 提供水文建模互動式網頁呈現 https://cran.r-project.org/web/packages/airGRteaching/index.html
3. shiny套件 - 提供互動式網頁功能 https://cran.r-project.org/web/packages/shiny/index.html

R程式碼下載


R程式碼

# title   : 水文建模shiny應用
# author  : Ming-Chang Lee
# email   : alan9956@gmail.com
# RWEPA   : http://rwepa.blogspot.tw/
# GitHub  : https://github.com/rwepa
# resource: https://rwepa.blogspot.com/2021/01/shiny-hydrological-modelling-with-shiny.html

# 安裝2個基本套件
# install.packages(c("airGR", "airGRteaching"))

# 使用remotes套件, 安裝最新版htmlwidgets套件
# 一定要安裝最新版htmlwidgets套件, 否則會有錯誤.
# install.packages("remotes")
# remotes::install_github("ramnathv/htmlwidgets")

library(airGRteaching)

# 載入L0123001資料集
data(L0123001, package = "airGR")

# 顯示物件清單
ls()
# [1] "BasinInfo" "BasinObs"

head(BasinObs)
# "DatesR": 年-月-日, POSIXct物件
# "P"  : average precipitation [mm/time step] 每日平均降雨量
# "T"  : catchment average air temperature [℃]  平均氣溫
# "E"  : catchment average potential evapotranspiration [mm/day] 平均潛在蒸發量
# "Qls": outlet discharge [l/s] 出水口排出量
# "Qmm": outlet discharge [mm/day] 出水口排出量

# 建立低地盆地資料
BV_L0123001 <- BasinObs[0001:6000, c("DatesR", "P", "E", "Qmm", "T")]

# 建立多山盆地資料
BV_L0123002 <- BasinObs[5000:9999, c("DatesR", "P", "E", "Qmm", "T")]
BI_L0123002 <- BasinInfo

# 建立互動式網頁資料分析
ShinyGR(ObsDF = list("Low-land basin" = BV_L0123001, "Mountainous basin" = BV_L0123002),
        ZInputs = list(NULL, median(BI_L0123002$HypsoData)),
        HypsoData = list(NULL, BI_L0123002$HypsoData),
        NLayers = list(5, 5),
        SimPer = list(c("1994-01-01", "1998-12-31"), c("2004-01-01", "2006-12-31")),
        theme = "United")

# theme 預設值為 "RStudio",可修改為以下值:
# ["Cerulean""Cyborg""Flatly""Inrae""Saclay""United" or "Yeti"]