2017年11月2日 星期四

2017 R TAIWAN 研討會



會議名稱:2017 R TAIWAN 研討會

會議主軸:資料融合、分析與應用 (不限定R語言)
會議地址:台北市中正區貴陽街一段56號 (東吳大學城中校區)
會議教室:東吳大學城中校區 5211演講廳、5117教室、2123教室

宗旨:
Big Data 是近年來熱門的話題之一,根據 2016年 KDnuggets 的調查顯示,R仍然高居資料解析、資料探勘與資料科學主要程式語言的首位。但R絕對不是萬能無缺的!搭配其它資料處理與分析的工具,方能捕捉到 Big一字的意涵 – 從關鍵的數據中解析真正不同且重要的洞見。依稀記得補習班常用的一句廣告詞:好的老師帶你上天堂,平庸的老師讓你原地踏步。R 無疑是個關鍵且能造血活血的工具,包羅萬象的R套件可以持續提升我們的資料解析能力。除非妳(你)想安逸,否則會被它一步一步地往前推。人人都希望經常遇見好的老師,但好老師背後成功的原因是授之以漁,而非授之以魚。能活血造血的開源工具無疑可以成為我們的導師,所以強調跨域資料分析的資料科學家們一定要先慎選工具,再去投注寶貴的時間和金錢在艱辛的學習過程中。今年 2017 R Taiwan 研討會從雲端、產業根基與解析技術等開始談起,結合實務經驗豐富的業界專家與尖端研究的學界教授進行分享討論,期使 R軟體發揮槓桿作用,讓各行各業能從彈性的開源工具中取得資料加值的競爭優勢。

會議時間:2017/12/14 星期四 (研討會前導課程)2017/12/15 星期五 (研討會主議程)

會議網址:http://rtaiwan2017.fmhuang.net/
早鳥票報名網址: https://goo.gl/forms/IYUtY76EgRShd2Os1

研討會主議程報名費用:一般票1000元、早鳥票800元
研討會前導課程報名費用:一般票1500元、早鳥票1200元
線上報名時間:
早鳥票:2017/11/01 中午 12 點開始至 2017/11/13 中午 12 點止
一般票:2017/11/14 中午 12 點開始至 2017/12/04 中午 12 點止

主辦單位:東吳大學巨量資料管理學院、中華R軟體學會、臺灣資料科學與商業應用協會、國立臺北商業大學
合辦單位:國立臺北商業大學資訊與決策科學研究所
協辦單位:中華R軟體學會、臺灣資料科學與商業應用協會、臺北市商用數學發展協會、國立臺北商業大學,資訊與決策科學研究所、國立臺北商業大學,資料科學應用研究中心、臺北醫學大學,管理學院、臺北醫學大學,大數據研究中心、中華市場研究協會、中華資料採礦協會、國立台北科技大學,資訊與財金管理系、東吳大學,財務工程與精算數學系。

# end

2017年10月19日 星期四

by + scale 資料物件轉換為資料框並與原始資料合併




關鍵字:

  • scale 資料標準化
  • by 依群組計算
  • rbind 列合併
  • do.call 執行R函數
  • cbind 行合併

分析:

  • by 函數:提供不同群組資料執行計算. by 的結果為 list, 使用 as.data.frame 會有錯誤, 此時改用 data.frame(do.call("rbind" , x)) 即可解決此問題. 
  • scale 函數: 將資料值進行標準化轉換, (x - u)/s, u:平均值, s:標準差.
  • rbind 函數是上/下資料的列結合.
  • cbind 函數是左右資料的行結合.


R程式解說:

  • [#1] 先將 by的結果儲存成資料物件x.
  • [#2] 使用 data.frame, do.call, rbind 將by結果合併.
  • [#3] 使用 cbind 將by 結果與原有資料物件進行行合併.
  • [#4] head 函數預設顯示前6筆資料.

R程式:

x <- by(iris[-5], iris$Species, scale) # list
tmp <- data.frame(do.call("rbind", x))
iris.scale <- cbind(iris, tmp)
head(iris.scale)
# end



2017年10月8日 星期日

蒙地卡羅法估計圓周率 (Monte Carlo Estimation of pi)

# 蒙地卡羅法
# 圓周率
# 模擬
# Monte Carlo
# pi
# Simulation
# Programming
# plotrix package

分析:

  • 本範例使用蒙地卡羅法以估計圓周率 pi。
  • 考慮正方形邊長為單位1, 面積為1平方單位. 中間包括圓形, 其半徑為0.5單位,圓形面積 = pi*(0.5^2) = pi/4.
  • 在正方形內隨機產生一個點(x, y), 點落在圓型內的機率大約等於扇型面積 / 正方形面積 = pi/4。
  • 考慮(x,y)落在圓形中的次數有numberInCircle次, 全部實驗次數為N, 則 pi 大約等於:
    (numberInCircle / N ) * 4.


R程式解說:

  • [#3] 首先載入 plotrix 套件, 準備繪製圓形圖.
  • [#4] 設定亂數種子, 準備隨機產生資料點(x, y)
  • [#5] mfrow=c(1,2) 設定繪圖結果為1列2行
  • [#6] 設定 type="n" 表示不繪圖. 因後續須客製化座標軸, axes=FALSE 不繪製座標軸, asp=1設定長寬比例為1. main 標題使用 expression 以標示數學符號pi.
  • [#7] 使用 draw.circle {plotrix} 繪製圓形圖.
  • [#8] 使用 lines 繪製正外形.
  • [#9] 加上4個角落位置的座標軸.
  • [#11] 建立 pi.simulation 函數
  • [#16-18] 如果點(x, y) 與 (0.5, 0.5) 之距離小於或等於0.5, 表示此點位於圓形之內, 此時 numberInCircle 個數加上1, 繪製紅色點.
  • [#21] 點(x, y)不位於圓形內, 繪製藍色點.
  • [#23] 計算估計pi值並儲存於 c 物件.
  • [#25] 回傳估計pi值物件c.
  • [#30] 取出最後一次計算之估計pi值.
  • [#39] 使用 par 函數將繪圖結果還原成1列,1行.

蒙地卡羅法估計圓周率圖:




R程式:



# title: Monte Carlo Estiamtion of pi
# date: 2017.10.9
library(plotrix)
set.seed(123)
op <- par(mfrow=c(1,2))
plot(0.5, 0.5, xlim=c(0, 1), ylim=c(0,1), type="n", axes=FALSE, asp=1, xlab="", ylab="", main=expression(paste("Monte Carlo for ", pi)))
draw.circle(0.5, 0.5, radius=0.5)
lines(x=c(0,1,1,0,0), y=c(0,0,1,1,0))
text(c(0.05,0.95,0.95,0.05), c(0.05,0.05,0.95,0.95), c("(0,0)", "(1,0)", "(1,1)", "(0,1)"))

pi.simulation <- function(samplesize) {
 c <- rep(0, samplesize)
 numberInCircle <- 0
 for (i in 1:samplesize) {
 x <- runif(2)
 if (sqrt((x[1]-0.5)^2 + (x[2]-0.5)^2) <= 0.5) {
 numberInCircle <- numberInCircle + 1
 points(x[1], x[2], col="red", pch=".")
 }
 else {
 points(x[1], x[2], col="blue", pch=".")
 }
 c[i] <- (numberInCircle / i) * 4
 }
 return(c)
}

size <- 10000
pi.sim <- pi.simulation(size)
estimation.pi <- pi.sim[size]
text(0.5, 0.5, paste0("sample size=", size), cex=1.5)
text(0.5, 0.4, paste("pi=",estimation.pi))
plot(pi.sim, type="l", 
 main="Monte Carlo method for pi",
 xlab="samples", ylab=expression(paste("Estimation of ", pi)), 
 ylim=c(0,6))
abline(h=estimation.pi, col="red", lty=3)
grid()
par(op)
# end

2017年9月22日 星期五

R等差數列(前後二個元素相減)與條件式計算


主題: 如何計算數列的前後二個元素相減產生的新等差數列與不同條件式數值計算

# diff
# c
# lapply
# <<

分析:
  • 感謝R友 Bic Ton提供此問題
  • 考慮 x <- c(2,5,6,1,3,8,4,5,6), 計算數列中後面減前面之結果, 例: 5-2=3, 6-5=1,...., 此時可以使用 diff(x).  diff 函數預設會計算數列中第2個元素減第1個元素的結果. 參閱線上說明 ?diff 
  • 如果希望計算前面減後面之結果, 例: 2-5=33, 5-6=-1,...., 此時可以使用 -diff(x)
  • 本例考慮3種不同解法:
    (1). 使用 for 迴圈判斷等差數列每個元素為正數或負數, 再加總結果.
    (2). 使用 for 迴圈判斷等差數列每個元素為正數或負數, 將結果用 c() 向量組合成新向量, 此方法可儲存正數與負數之結果. 注意: 本方法因為要儲存新等差數列的結果, 因此執行時間須較久.
    (3). 使用 lapply 函數以進行不同條件式數值計算, 本例使用全域變數指派符號 << 以利回傳計算結果.
  • 本例第2種方法 c() 分別儲存正/負數結果, 如果資料量較大時, 例: 100萬筆資料以上, 其執行時間須很久, 此時須考量其他儲存方式, 例: 使用 list串列 以加速程式之進行.
R程式碼:

x <- c(2,5,6,1,3,8,4,5,6)
x.diff <- -diff(x)
x.diff
# method 1 using for loop
gain1 <- 0
loss1 <- 0
for (i in 1:length(x.diff)) {
 if (x.diff[i] >= 0) gain1 <- gain1 + x.diff[i]
 else if (x.diff[i] < 0) loss1 <- loss1 + x.diff[i]
}
gain1
loss1

# method 2 using for loop with c()
gain2 <- c()
loss2 <- c()
for (i in 1:length(x.diff)) {
 if (x.diff[i] >= 0) gain2 <- c(gain2, x.diff[i])
 else if (x.diff[i] < 0) loss2 <- c(loss2, x.diff[i])
}
sum(gain2)
sum(loss2)

# method 3
gain3 <- 0
loss3 <- 0
lapply(x.diff, function(x) {
 ifelse(x > 0, gain3 <<- gain3 + x, loss3 <<- loss3 + x)
 #return(c(gain, loss))
 })
gain3
loss3
# end

2017年9月10日 星期日

R讀取中文檔案產生亂碼等錯誤問題

主題: R讀取中文檔案產生亂碼等錯誤問題

說明:

# 2022.08.16 更新

感謝R友-HJ提供此問題.

問題: 使用 Windows 10 企業版, 匯入資料有亂碼或是有問題.
分析: 

# Windows 10 企業版
# R-4.2.1
# RStudio Desktop 2022.07.1+554

# gfc.csv download
# https://github.com/rwepa/DataDemo/blob/master/gfc.csv

Sys.getlocale()
# "LC_COLLATE=Chinese (Traditional)_Taiwan.1252 ...

# method 1 default locale
gfc1 <- read.table("gfc.csv", header = TRUE, sep = ",")
head(gfc1, n=3)
# 亂碼
# ï..orderdate supplier amount
# 1     2009/1/3   æ—¥äºž    266
# 2     2009/1/4 廣é\u0081”    123
# 3     2009/1/5 廣é\u0081”     66

# method 2 set locale
Sys.setlocale(category="LC_ALL", locale = "English_United States.1252")
Sys.getlocale()
# "LC_COLLATE=English_United States.125 ...

gfc2 <- read.table("gfc.csv", header = TRUE, sep = ",", encoding = "UTF-8")
head(gfc2, n=3)
# 亂碼
# X.U.FEFF.orderdate         supplier amount
# 1           2009/1/3 <U+65E5><U+4E9E>    266
# 2           2009/1/4 <U+5EE3><U+9054>    123
# 3           2009/1/5 <U+5EE3><U+9054>     66

head(as.character(gfc2$supplier)) # 中文正常
# "日亞" "廣達" "廣達" "日亞" "廣達" "科銳"
# end

# 2022.5.4 更新

R-4.2.0版本直接支援CSV檔案為 UTF-8-BOM 編碼,
將檔案另存為ANSI編碼時, read.table 會有錯誤
myfile <- "gfc.csv"
gfc <- read.table(myfile, header = TRUE, sep = ",")
head(gfc)

# 2021.11.03 更新
# 直接讀取網路中文檔案
urls <- "https://raw.githubusercontent.com/rwepa/DataDemo/master/gfc.csv"
gfc <- read.table(urls, header = TRUE, sep = ",", fileEncoding = "UTF-8-BOM")
head(gfc)

# 2017.9.10
# read.table
# encoding="UTF-8-BOM"
# ANSI
  • 感謝R友-阿賢提供 encoding="UTF-8-BOM"解決亂碼問題.
  • 使用R讀取文字檔時, 有時會遇到資料匯入有錯誤訊息或中文亂碼問題.
  • 資料來源: https://data.gov.tw/dataset/35131, 匯入 open data 空氣品質監測小時值(一般污染物,每日更新) 所產生的問題與解決方式.
  • 匯入資料 read.table {utils} 常用參數:
    (1). fill = TRUE --> 使用時機: 錯誤訊息為 line x did not have xxx elements.
    (2). encoding --> 結果為亂碼.
    (3). fileEncoding  --> 結果為亂碼.
  • 考慮 Windows 執行環境, 如果有亂碼問題, 最簡單的解決方式之一是使用記事本開啟檔案, 另存新檔 畫面中, 編碼改為 ANSI.


  • 使用 Notepad++ [https://notepad-plus-plus.org/zh/] 開啟檔案, 在視窗右下角狀態列會有"UTF-8-BOM"編碼, 此時可加上 encoding 或 fileEncoding 參數, 本例使用 fileEncoding = "UTF-8-BOM" 參數即可完成匯入資料.


  • 另可參考: 資料集為CSV檔,打開來為亂碼,怎麼辦? https://data.gov.tw/node/18765
  • 結論: 使用另存ANSI編碼或加入fileEncoding="UTF-8-BOM"參數應該可以解決亂碼問題.
# 執行畫面:



# R程式碼:
x1 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",") # line 1 did not have 31 elements
x2 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",", encoding="UTF-8") # line 1 did not have 31 elements
x3 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",", encoding="UTF-8", fill=TRUE) # 欄位錯誤
x3[1:3, 1:6]
x4 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",", encoding="UTF-8-BOM") # line 1 did not have 31 elements
x5 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",", encoding="UTF-8-BOM", fill=TRUE) # 亂碼
x5[1:3, 1:6]
x6 <- read.table("ATM00626_20170910170405.csv", header=TRUE, sep=",", fileEncoding = "UTF-8-BOM", fill=TRUE) # OK
x6[1:3, 1:6]
x7 <- read.table("ATM00626_20170829185638-ansi.csv", header=TRUE, sep=",") # OK
x7[1:3, 1:6]
x8 <- read.csv("ATM00626_20170910170405.csv", header=TRUE) # 亂碼
x8[1:3, 1:6]
x9 <- read.csv("ATM00626_20170910170405.csv", header=TRUE, fileEncoding = "UTF-8") # invalid input found
x10 <- read.csv("ATM00626_20170910170405.csv", header=TRUE, encoding = "UTF-8-BOM") # 亂碼
x10[1:3, 1:6]
x11 <- read.csv("ATM00626_20170910170405.csv", header=TRUE, fileEncoding = "UTF-8-BOM") # OK
x11[1:3, 1:6]
# end

2017年9月9日 星期六

網路抓取 R CRAN 套件清單, 使用 ggplot2 套件繪圖, 建立第2個y軸座標.

主題: 網路抓取 R CRAN 套件清單, 使用 ggplot2 套件繪圖, 建立第2個y軸座標.
說明:

# ggplot2
# packages list
# XML
# geom_col
# goem_line
# geom_point
# scale_y_continuous



  • [#1-2] 首先載入 XML, ggplot2 套件.
  • [#3] 使用CRAN網站-依日期排列抓取現有1萬多個套件清單,
    例: http://cran.csie.ntu.edu.tw/web/packages/available_packages_by_date.html
  • [#4] 使用 readHTMLTable {XML} 函數以讀取網站中的套件清單表格, 將結果儲存為mydf資料物件.
  • [#7] 使用 trimws {base} 函數以刪除欄位名稱空白字元.
  • [#8] 原匯入第1欄 Date為字串資料型態, 使用 as.Date {base} 轉換為 日期(Date) 資料型態.
  • [#9] 使用 format {base}並取出套件更新年, 使用 table {base} 以計算各年套件個數.
  • [#10] 使用 cumsum {base}計算累計套件數並新增為 AccumulatedPAckages 欄位.
  • [#11] 使用 names {base} 設定前二欄名稱為 Year, Packages.
  • [#14] 使用 geom_col {ggplot2} 繪製"套件數(年)"長條圖, 另可使用 geom_bar {ggplot2} 繪製.
  • [#15-18] 設定主標題, x軸標題, y軸標題. theme {ggplot2} 可設定標題左右置中.
  • [#19] 使用 scale_y_continuous {ggplot2}可在繪圖區之右側建立y軸第2座標軸. 右側y軸對應長條圖的刻度. ggplot2 採用資料轉換概念, 因此左側y軸第1座標軸的刻度,對應至累計套件數, 其中最大值約11405, 右側最大值約4502, 11405/4502=2.5, 考慮以2倍計算, 即將左側刻度除以2, 轉換為右側刻度, 一般使用 trans = ~. /2 表示.
  • [#21] 使用 annotate {ggplot2} 可加上文字標題.
  • [#22-24] 使用 goem_line {ggplot2} 繪製累計套件數線圖.
  • [#25-27] 使用 goem_point {ggplot2} 繪製累計套件數點圖.

library(XML)
library(ggplot2)
urls <- "http://cran.csie.ntu.edu.tw/web/packages/available_packages_by_date.html"
mydf <- readHTMLTable(urls, stringsAsFactors = FALSE)
str(mydf)
mydf <- mydf[[1]]
names(mydf) <- trimws(names(mydf))
mydf$Date <- as.Date(mydf$Date)
mydf <- data.frame(table(format(mydf$Date, "%Y")), stringsAsFactors=FALSE)
mydf$AccumulatedPAckages <- cumsum(mydf$Freq)
names(mydf)[1:2] <- c("Year", "Packages")
mydf
ggplot(mydf, aes(x = Year)) +
geom_col(aes(y = Packages*2), fill="grey") + 
theme(plot.title = element_text(hjust = 0.5)) + 
xlab("年") + 
ylab("累計套件數") +
ggtitle("CRAN-套件統計圖 - by RWEPA") + 
scale_y_continuous(sec.axis = sec_axis(trans = ~. /2)) + 
theme(axis.title.y = element_text(colour = "blue")) + 
annotate("text", x=13, y=5500, label= "套件數(年)", angle = -90) + 
geom_line(aes(y = AccumulatedPAckages, group = 1), linetype = 2, color = "blue") +
theme(axis.text.x = element_text(face="bold", angle=45),
axis.text.y = element_text(face="bold", color="black", size=10)) +
geom_point(aes(y = AccumulatedPAckages, group = 1), color = "blue") +
geom_text(aes(y = AccumulatedPAckages, label = AccumulatedPAckages), 
vjust = -0.3, size = 4, color = "blue")
# end


2017年8月5日 星期六

圖例中顯示點線混合符號 legend

主題: 使用R繪製圖形時, 圖例採用點線混合同時繪圖

說明:

在 legend 函數中, pch 或 lty  等參數中設定為NA 即可混合使用點線等圖例.



# title: 圖例中顯示點線混合符號
# date: 2017.8.5
x1 <- c(1,2,5,4,3)
x2 <- c(4, 1.5, 1.9, 3, 7)
x3 <- c(5, 6, 9, 3, 1)
ymax <- max(c(x1,x2,x3)) + 1.5
plot(x1, type = "b", pch = 19, lty = 1, col = 1, 
 ylim = c(0, ymax), 
 main="圖例中顯示點線混合符號")
points(x2, pch = 17, col = 2)
lines(x3, lty = 2, col = 4)
legend("topleft", legend = c("x1", "x2", "x3"),
 pch = c(19, 17, NA), lty = c(1, NA, 2),
 col = c(1, 2, 4), text.col = c(1,2,4))
# end

2017年7月27日 星期四

建立 GIF 動畫檔案 animation 套件

animation 套件可以建立動畫檔案, 例: GIF 等檔案, 本篇文章說明使用方法.

下載 ImageMagick 軟體

下載位置 https://www.imagemagick.org/script/download.php , 下載網頁包括 Unix Binary Release, Mac OS X Binary Release, iOS Binary Release 以及 Windows Binary Release, 在 Windows 版本中直接選取 "mageMagick-7.0.6-3-Q16-x64-dll.exe" 下載即可.


安裝 ImageMagick 軟體

ImageMagick安裝過程中, 因為 animation 套件須使用 convert 等方法, 因此在 [Select Additional Tasks] 視窗中記得要勾選 Install legacy utilities(e.g. convert), 按 Next 完成安裝.



安裝 animation 套件

install.packages("animation")

範例1

將要繪圖的函數建立在 saveGIF( ) 函數之中. movie.name 參數可設定匯出GIF檔案名稱.


# install.packages("animation")
library(animation)

# example 1
saveGIF({
  for (i in 1:10) plot(runif(10), ylim = 0:1, col=i)
},  movie.name = "animation_runif.gif")



範例2


# example 2
# reference: http://www.programmingr.com/content/animations-r/

# Set delay between frames when replaying
ani.options(interval=.05)

# Set up a vector of colors for use below 
col.range <- heat.colors(15)

# Begin animation loop
# Note the brackets within the parentheses
saveGIF({
 
 # For the most part, it’s safest to start with graphical settings in 
 # the animation loop, as the loop adds a layer of complexity to 
 # manipulating the graphs. For example, the layout specification needs to 
 # be within animation loop to work properly.
 layout(matrix(c(1, rep(2, 5)), 6, 1))
 
 # Adjust the margins a little
 par(mar=c(4,4,2,1) + 0.1)
 
 # Begin the loop that creates the 150 individual graphs
 for (i in 1:150) {
 
 # Pull 100 observations from a normal distribution
 # and add a constant based on the iteration to move the distribution
 chunk <- rnorm(100)+sqrt(abs((i)-51))
 
 # Reset the color of the top chart every time (so that it doesn’t change as the 
 # bottom chart changes)
 par(fg=1)
 
 # Set up the top chart that keeps track of the current frame/iteration
 # Dress it up a little just for fun
 plot(-5, xlim = c(1,150), ylim = c(0, .3), axes = F, xlab = "", ylab = "", main = "Iteration demo")
 abline(v=i, lwd=5, col = rgb(0, 0, 255, 255, maxColorValue=255))
 abline(v=i-1, lwd=5, col = rgb(0, 0, 255, 50, maxColorValue=255))
 abline(v=i-2, lwd=5, col = rgb(0, 0, 255, 25, maxColorValue=255))
 
 # Bring back the X axis
 axis(1)
 
 # Set the color of the bottom chart based on the distance of the distribution’s mean from 0
 par(fg = col.range[mean(chunk)+3])
 
 # Set up the bottom chart
 plot(density(chunk), main = "", xlab = "X Value", xlim = c(-5, 15), ylim = c(0, .6))
 
 # Add a line that indicates the mean of the distribution. Add additional lines to track
 # previous means
 abline(v=mean(chunk), col = rgb(255, 0, 0, 255, maxColorValue=255))
 if (exists("lastmean")) {abline(v=lastmean, col = rgb(255, 0, 0, 50, maxColorValue=255)); prevlastmean <- lastmean;}
 if (exists("prevlastmean")) {abline(v=prevlastmean, col = rgb(255, 0, 0, 25, maxColorValue=255))}
 #Fix last mean calculation
 lastmean <- mean(chunk)
 }
}, movie.name = "animation_iteration.gif")


# end

個人簡介(About)

簡介

姓名: 李明昌 (MING-CHANG LEE)




李明昌博士擅長於R/Python/SQL等語言程式設計與應用、資料視覺化、機器學習、統計品管與最佳化等研究方法與應用。不但在國內外知名期刊發表其研究成果,更多次擔任International Journal of Production Research、Transactions on Fuzzy Systems、Journal of the Operational Research Society、International Journal of Advanced Manufacturing Technology、Journal of Cleaner Production等SCI期刊評審委員。為了讓莘莘學子多加認識R等語言及應用,除了擔任教育部補助技專院校研究計畫的R語言程式設計講師,更積極到國內外各大專院校、資策會、工業技術研究院、國家發展委員會、中央氣象局、公平交易委員會、行政院人事行政總處公務人力發展學院、縣市政府與日本名古屋產業大學等公民營單位演講,在R與Python語言的研究應用方面,更是不遺餘力。

服務

R, Python, shiny, Tableau, Power BI 程式設計, 大數據分析, 資料視覺化, 機器學習, 統計品管, 最佳化, 企業服務, 業師協同教學.

資訊

RWEPA網站:http://rwepa.blogspot.com/

YouTube: https://www.youtube.com/@alan9956

EMAIL: alan9956@gmail.com

GitHub: https://github.com/rwepa

FB: https://www.facebook.com/rbigdata


現職

中華R軟體學會 理事,核准立案字號:1010123219 (101年2月5日~迄今)

臺灣資料科學與商業應用協會 理事,核准立案字號:1020247598 (102年4月9日~迄今)

推廣 - iPAS經濟部產業人才能力鑑定  營運智慧分析師 

推廣 - iPAS經濟部產業人才能力鑑定  巨量資料分析師 

學歷

博士:中原大學 工業與系統工程所

碩士:中原大學 機械工程研究所(工業工程組)

學士:東吳大學 財務工程與精算數學系(原商用數學系)

課程表

91學年度起上課表 https://github.com/rwepa/teaching/

經歷

淡江大學 兼任教師

佛光大學 兼任教師

育達科技大學  兼任教師

國立台北商業大學 兼任教師

東吳大學 兼任教師

育達科技大學 資訊管理系(所) 兼任教師 (2020年8月1日起, 109學年度第1學期起)

育達科技大學 資訊管理系(所) 專任助理教授 (2000年8月1日~2020年7月31日)

育達商業科技大學 資訊管理系 專任講師

育達商業技術學院 資訊管理系 兼任台北進修推廣部註冊組組長

育達商業技術學院 資訊管理系 兼任台北進修推廣部課務組組長

崇友實業 行銷企劃專員

國航船務代理股份有限公司 海運市場運籌專員

研究

R/Python/Julia/SQL程式設計與應用 (R/Python/Julia/SQL Programming and Application)

資料視覺化 (Data Visualization)

機器學習 (Machine Learning)

統計品管 (Statistical Quality Control)

最佳化 (Optimization)

R簡介


R是一種基於 S 語言所發展出具備統計分析、繪圖與資料視覺化的程式語言。

R進化史:
1976 - 貝爾實驗室 John Chambers, Rick Becker, and Allan Wilks 研發S 語言。
1993 - Ross Ihaka and Robert Gentlemen, University of Auckland, New Zealand 研發R 語言。
1997 - R的核心開發團隊 (R development core team) 成立,專責R原始碼的修改與編寫。

2000年02月29日 - R 1.0.0
2004年10月03日 - R 2.0.0
2013年04月03日 - R 3.0.0
2023年10月31日 - R 4.3.2

Flickr


2020.01.27-02.05-德國10遊

2019.03.30-東吳大學-石門水庫

2019.03.23-板橋高中-平溪

2018.08.08-08.18-東歐(奧地利,捷克)

2017.01.29-02.07-北歐冬之芬蘭(含瑞典)10天

2015.02.20-03.01-法瑞義10日遊

專題演講

編號 日期 主題 單位/地點 時數
=== ==== ==== ======= ====
1 2011年7月4,6,8,11,13日 R統計軟體初階課程教育訓練 國立臺北商業技術學院資訊與決策科學研究所 30
2 2011年11月19日 R統計軟體初階課程教育訓練 輔英科技大學資訊管理系 6
3 2012年5月18日 軟體學習工作坊-R軟體的認識與使用 東吳大學財務工程與精算數學系 3
4 2012年10月17日 統計學與問卷調查專題講座-UsingR 新竹市光復高級中學 2
5 2012年11月20日 R軟體-資料包絡分析,決策樹 東吳大學財務工程與精算數學系 2
6 2013年1月21,22日 輕鬆學會R軟體基礎(台北場) 致理技術學院 6
7 2013年5月9,16日 輕鬆學會R軟體基礎 工業技術研究院資通所 6
8 2013年7月3,4日 輕鬆學會R軟體基礎 淡江大學台北校區  6
9 2013年8月5,6日 輕鬆學會R軟體基礎 德明財經科技大學 6
10 2013年8月8,9日 輕鬆學會R軟體-資料探勘 德明財經科技大學 6
11 2013年8月16日 BigData資料分析首部曲-R軟體實作班#1 資訊工業策進會數位教育研究所 9
12 2013年8月19日 R語言與資料探勘研習會 大華科技大學商務與觀光管理學院 5
13 2013年8月24日 BigData資料分析二部曲-R軟體與資料探勘 資訊工業策進會數位教育研究所 7
14 2013年9月16,23,30日 R語言講座 國立臺北商業技術學院資訊與決策科學研究所 12
15 2013年10月9日 R在商業管理上的應用 明新科技大學管理研究所 2
16 2013年10月11,18日 R與資料探勘技術 資訊工業策進會數位教育研究所 12
17 2013年10月14,15日 輕鬆學會R軟體-資料探勘 淡江大學台北校區 6
18 2013年11月1,2日 BigData資料分析首部曲-R軟體實作班#2 資訊工業策進會數位教育研究所 9
19 2013年11月4日 Visualization_with_R Taiwan_R_User_Group政大公企中心 1
20 2013年11月22日 R在生活資訊的應用 苗栗縣大成高級中學資訊技術學程 2
21 2013年11月23日 BigData資料分析二部曲-R軟體與資料探勘 資訊工業策進會數位教育研究所 7
22 2013年11月30日,12月1日 BigData資料分析三部曲-R軟體與資料視覺化★1 資訊工業策進會數位教育研究所 7
23 2013年12月17,20日 R與資料探勘技術-第2梯 資訊工業策進會數位教育研究所 12
24 2014年1月22日 R軟體於資料探勘應用實作班 中華電信學院 6
25 2014年1月24日 巨量資料分析-商業分析塑模(首部曲) 聚碩科技 3
26 2014年2月21日 BigData資料分析首部曲-R軟體實作班#3 資訊工業策進會數位教育研究所 6
27 2014年2月25日 巨量資料分析-商業分析塑模(首部曲) 聚碩科技 3
28 2014年3月8日 BigData資料分析二部曲-R軟體與資料探勘 資訊工業策進會數位教育研究所 6
29 2014年3月10日 R軟體於資料視覺化應用實作班 中華電信學院 6
30 2014年3月22,23日 BigData資料分析三部曲-R軟體與資料視覺化★2 資訊工業策進會數位教育研究所 7
31 2014年3月28日 R軟體實作班#4 資訊工業策進會數位教育研究所 6
32 2014年4月12日 R軟體資料探勘 資訊工業策進會數位教育研究所 6
33 2014年4月14日 R軟體於資料探勘應用實作班 中華電信學院 6
34 2014年4月25日 巨量資料分析-商業分析塑模(首部曲) 聚碩科技 3
35 2014年4月26日 R軟體與財金資料分析$1 資訊工業策進會數位教育研究所 7
36 2014年5月14日 資料加值與商務決策 工業技術研究院產業學院 7
37 2014年6月7日 R軟體實作班#5 資訊工業策進會數位教育研究所 6
38 2014年6月27日 巨量資料分析-商業分析塑模(首部曲) 聚碩科技 3
39 2014年6月27日 R軟體資料探勘 資訊工業策進會數位教育研究所 7
40 2014年7月21日 R軟體與NoSQL資料庫軟體套件應用班 中華電信學院 6
41 2014年7月29,31日 R語言講座 國立臺北商業大學資訊與決策科學研究所 6
42 2014年8月2日 R軟體實作班#6 資訊工業策進會數位教育研究所 6
43 2014年8月15日 R軟體資料探勘 資訊工業策進會數位教育研究所 7
44 2014年8月18日 R軟體於資料探勘應用實作班 中華電信學院 6
45 2014年8月28日 資料加值與商務決策 工業技術研究院產業學院 7
46 2014年8月30日 R軟體與資料視覺化★3 資訊工業策進會數位教育研究所 7
47 2014年9月13日 R軟體與財金資料分析$2 資訊工業策進會數位教育研究所 7
48 2014年9月27日 Python資料探勘實作*1 資訊工業策進會數位教育研究所 7
49 2014年10月8,15日 資料科學與R軟體 東吳大學海量資料分析研究中心 6
50 2014年10月20,23,24日 R軟體基礎與資料探勘 中央氣象局 9
51 2014年10月31日 R軟體與資料探勘應用 真理大學統計與精算學系 2
52 2014年11月1日 R軟體實作班#7 資訊工業策進會數位教育研究所 6
53 2014年11月14,15日 R軟體資料探勘 資訊工業策進會數位教育研究所 10
54 2014年11月17日 資料加值與商務決策 工業技術研究院產業學院 7
55 2014年11月21日 Python資料探勘實作*2 資訊工業策進會數位教育研究所 7
56 2014年11月28日 Data會說話-資料視覺化之應用 真理大學統計與精算學系 2
57 2015年1月18日 R軟體與網頁資料擷取應用@1 資訊工業策進會數位教育研究所 7
58 2015年1月21日 財金資料建模與R,Rmetrics實作 聚碩科技 3
59 2015年1月24日 R軟體實作班#8 資訊工業策進會數位教育研究所 6
60 2015年3月7日 R軟體實作班#9 資訊工業策進會數位教育研究所 6
61 2015年3月14日 Python資料探勘實作*3 資訊工業策進會數位教育研究所 7
62 2015年3月16日 R工具在氣象資料的應用 中央氣象局 3
63 2015年3月23日 資料加值與商務決策 工業技術研究院產業學院 7
64 2015年3月28,29日 R軟體與資料視覺化★4 資訊工業策進會數位教育研究所 14
65 2015年4月12日 R軟體實作班#10 資訊工業策進會數位教育研究所 7
66 2015年4月13,14日 BigData之處理與分析實務 資訊工業策進會數位教育研究所 14
67 2015年4月19日 R軟體與網頁資料擷取應用@2 資訊工業策進會數位教育研究所 7
68 2015年4月24日 R軟體基礎實作 新光人壽 6
69 2015年4月27日,5月4,11日 R軟體資料視覺化 新光人壽 18
70 2015年6月5日 2015資料科學與產業應用工作坊—互動式分析平台工作坊 中華電信學院 1
71 2015年6月15,22日 R語言與資料加值實作課程 工業技術研究院產業學院 12
72 2015年7月11,12日 R軟體實作班#11 資訊工業策進會數位教育研究所 12
73 2015年7月16,17日 EEC巨量資料處理與分析專業認證教師研習會 財團法人中華民國電腦技能基金會/正修科技大學 16
74 2015年4月22日~7月22日 迴歸分析,模擬與拔靴抽樣,主成分分析,因素分析,對應分析,資料庫與報表輸出 典通資訊 14
75 2015年7月25日 智慧商店整合服務與Bigdata應用 新北市政府經濟發展局-財團法人工業技術研究院 3
76 2015年8月2日 R軟體與網頁資料擷取應用@3 資訊工業策進會數位教育研究所 6
77 2015年8月15,16日 R軟體實作班#12 資訊工業策進會數位教育研究所(高雄) 14
78 2015年8月14,20日 R語言與Hadoop生態系統應用實作 工業技術研究院產業學院 12
79 2015年8月24-26日 巨量資料的分析工具 國家發展委員會 18
80 2015年8月27,28日 EEC巨量資料處理與分析專業認證教師研習會 財團法人中華民國電腦技能基金會/國立台北科技大學 16
81 2015年8月29,30日 R軟體與資料視覺化★5 資訊工業策進會數位教育研究所 12
82 2015年8月31日,9月1~2日 R資料分析與應用-第1期 國家發展委員會 18
83 2015年9月12,13日 Python資料探勘實作*4 資訊工業策進會數位教育研究所 14
84 2015年9月17,24日 R語言與資料加值實作課程 工業技術研究院產業學院 12
85 2015年10月3日 R軟體實作班#13 資訊工業策進會數位教育研究所 6
86 2015年10月23日 R巨量資料分析與應用 台中自然科學博物館 6
87 2015年10月31日,11月1日 R軟體與資料視覺化★6 資訊工業策進會數位教育研究所 12
88 2015年11月7,8日 R軟體實作班#14 資訊工業策進會數位教育研究所(高雄) 12
89 2015年11月25日 R與巨量資料分析 育達科技大學資訊管理系週會講座 1
90 2015年11月28,29日 EEC巨量資料處理與分析專業認證教師研習會 財團法人中華民國電腦技能基金會/嘉南藥理大學資訊管理系 12
91 2015年11月19,26日,12月10日 R與巨量資料分析應用教師研習會 真理大學資訊管理學系 6
92 2015年12月12日 R軟體與網頁資料擷取應用@4 資訊工業策進會數位教育研究所 6
93 2015年12月14,21日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/靜宜大學統計資訊學系 12
94 2015年12月17日 R與氣象資料視覺化QC應用 中央氣象局 3
95 2015年12月8,22日 R軟體在BigData與商業智慧之應用 亞東技術學院資訊管理系 6
96 2015年12月26日 R資料分析師-實作Lab TibaMe學習網/國立臺北商業大學 6
97 2015年12月28,30日 R軟體應用於資料分析之探討 明新科技大學資訊管理系 6
98 2015年11月19日~2016年1月7日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/明新科技大學資訊管理系 24
99 2016年1月9日 R軟體與財金資料分析$3 資訊工業策進會數位教育研究所 6
100 2016年1月14,15日 使用R語言於巨量資料分析應用 中華管理發展協會/育達科技大學資訊管理系 12
101 2016年1月16日 R軟體實作班#15 資訊工業策進會數位教育研究所 6
102 2016年1月20,21日 R語言與資料加值實作課程 工業技術研究院產業學院 12
103 2016年2月2,3,4日 R語言資料加值與RHadoop實作課程 工業技術研究院產業學院(高雄) 21
104 2016年2月16日 RHadoop巨量資料分析實作 正修科技大學資訊管理系 6
105 2016年2月17,19,22日 R軟體與BI工具整合應用 資訊服務(台北) 20
106 2016年3月5日 R軟體實作班#16 資訊工業策進會數位教育研究所 6
107 2016年3月12日 Python資料探勘實作*5 資訊工業策進會數位教育研究所 6
108 2016年3月11,14日 R軟體套件應用基礎班 中華電信學院 12
109 2016年3月19,20日 R軟體實作班#17 資訊工業策進會數位教育研究所(高雄) 12
110 2016年3月26,27日 R軟體與資料視覺化★7 資訊工業策進會數位教育研究所 12
111 2016年3月31日 R軟體與巨量資料分析與應用 東海大學電機工程學系 2
112 2016年4月8,11日 R軟體暨Rcmdr套件統計應用基礎班 中華電信學院 12
113 2016年3月29日,4月12日 R與巨量資料分析 南華大學電子商務管理學系 9
114 2016年4月17日 R軟體與網頁資料擷取應用@5 資訊工業策進會數位教育研究所 6
115 2016年4月15,18日 R語言與資料加值實作課程 工業技術研究院產業學院 12
116 2016年4月23,24日 Python資料探勘實作*6 資訊工業策進會數位教育研究所(高雄) 14
117 2016年5月1日 R軟體實作班#18 資訊工業策進會數位教育研究所 6
118 2016年5月10日 R與社會網路應用 朝陽科技大學校務研究辦公室 3
119 2016年5月9,16日 R與資料探勘應用 龍華科技大學資訊管理系 6
120 2016年5月28,29日 R軟體與資料視覺化★8 資訊工業策進會數位教育研究所 12
121 2016年5月30日 R與巨量資料視覺化應用 台南應用科技大學資訊管理系 1
122 2016年4月20日,5月18日,6月1日 R語言與大數據分析 真理大學資訊管理學系 6
123 2016年5月7,14日,6月4日 R軟體巨量資料分析與應用 朝陽科技大學資訊管理學系 18
124 2016年6月6日 R語言與資料視覺化的應用 元培醫事科技大學校務研究辦公室 7
125 2016年6月18日 資料服務應用研習營-資料分析流程及分析工具介紹 台北市電腦公會 3
126 2016年6月19日 Python資料探勘實作*7 資訊工業策進會數位教育研究所 6
127 2016年6月26日 R軟體實作班#19 資訊工業策進會數位教育研究所 6
128 2016年7月7日 R_and_Big_Data_Application NagoyaSangyoUniversity(日本名古屋產業大學) 2
129 2016年7月15日 R語言之分析實務技巧-實作Lab TibaMe學習網/國立臺北商業大學 6
130 2016年7月23,24日 R軟體與資料視覺化★9 資訊工業策進會數位教育研究所 12
131 2016年7月31日 R軟體與網頁資料擷取應用@6 資訊工業策進會數位教育研究所 6
132 2016年8月10日 大數據分析實務 105年度新竹科學園區科技管理專題講座 3
133 2016年8月13日 R軟體與財金資料分析$4 資訊工業策進會數位教育研究所 6
134 2016年8月14日 R語言之分析實務技巧-實作Lab TibaMe學習網/中央大學 6
135 2016年8月15-18日 R語言與巨量資料分析應用研習 國立高雄海洋科技大學資訊管理系 28
136 2016年8月27日 R軟體實作班#20 資訊工業策進會數位教育研究所 6
137 2016年8月29-31日 R軟體基礎與統計分析應用-第2期 國家發展委員會 18
138 2016年9月3日 Python資料探勘實作*8 資訊工業策進會數位教育研究所 6
139 2016年9月12-14日 R軟體資料處理應用 國家發展委員會 18
140 2016年9月19-21日 R軟體資料探勘與視覺化應用 國家發展委員會 18
141 2016年9月23,26日 R語言與Rcmdr套件統計應用實作課程 工業技術研究院產業學院 12
142 2016年10月1日 R軟體實作班#21 資訊工業策進會數位教育研究所 6
143 2016年10月20日 工業4.0與大數據分析應用I 龍華科技大學管理學院 2
144 2016年10月22,23日 R軟體與Shiny-Web應用程式設計#1 資訊工業策進會數位教育研究所 12
145 2016年10月29,30日 R軟體與資料視覺化★10 資訊工業策進會數位教育研究所 12
146 2016年11月7日 R軟體與地理視覺化應用 內政部統計處 6
147 2016年12月8日 工業4.0與大數據分析應用II 龍華科技大學管理學院 2
148 2016年12月2,9日 Python企業資料分析與預測應用實作 工業技術研究院產業學院 12
149 2016年12月7,14日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/靜宜大學統計資訊學系 12
150 2016年12月19,26日 R與大數據行銷應用 國立屏東大學行銷與流通管理學系 14
151 2017年1月7日 R軟體實作班#22 資訊工業策進會數位教育研究所 6
152 2017年2月11日 R軟體之金融大數據分析與應用$5 資訊工業策進會數位教育研究所 6
153 2017年2月13日 R軟體實作班#23 資訊工業策進會數位教育研究所 6
154 2017年3月2日 R與資料視覺化應用 靜宜大學統計資訊學系 3
155 2017年3月4日 R軟體實作班#24 資訊工業策進會數位教育研究所 6
156 2017年2月21,23日,3月7,9,11日 機率統計與R語言基礎-第1期 財團法人中華民國證券暨期貨市場發展基金會 18
157 2017年3月14,16,18,21,23日 機率統計與R語言基礎-第2期 財團法人中華民國證券暨期貨市場發展基金會 18
158 2017年3月21日 大數據分析基礎與應用研習班 臺北市政府資訊局 3
159 2017年3月29日 金融大數據技術之教學應用 明新科技大學財務金融系 3
160 2017年4月7日 R與地理資料視覺化應用 龍華科技大學資訊管理系 3
161 2017年3月27,29,31日,4月10,12,14日 機率統計與R語言基礎-第3期 財團法人中華民國證券暨期貨市場發展基金會 18
162 2017年4月27日,5月4日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/弘光科技大學資訊工程系 6
163 2017年5月13日 Python資料探勘實作*9 資訊工業策進會數位教育研究所 6
164 2017年5月15日 R軟體實作班#25 資訊工業策進會數位教育研究所 6
165 2017年5月16日 R語言與資料視覺化的應用 元培醫事科技大學校務研究辦公室 6
166 2017年5月18日 R語言關聯規則分析與視覺化應用 靜宜大學統計資訊學系 3
167 2017年6月2日 R軟體資料處理應用 元培醫事科技大學校務研究辦公室 7
168 2017年6月11日 R軟體與網頁資料擷取應用@7 資訊工業策進會數位教育研究所 6
169 2017年6月13日 R軟體資料探勘應用 元培醫事科技大學校務研究辦公室 6
170 2017年6月18日 R軟體之金融大數據分析與應用$6 資訊工業策進會數位教育研究所 6
171 2017年6月28,29日 R軟體資料探勘與視覺化應用 嶺東科技大學校務研究辦公室 12
172 2017年7月1日 R軟體實作班#26 資訊工業策進會數位教育研究所 6
173 2017年7月10,11,12日 R軟體基礎與統計分析應用-第3期 國家發展委員會 18
174 2017年7月15,16日 R軟體與資料視覺化★11 資訊工業策進會數位教育研究所 12
175 2017年8月1日 巨量資料分析師-能力鑑定種子師資研習-科目:資料導向程式設計 經濟部/資訊工業策進會(台北) 6
176 2017年8月2日 巨量資料分析師-能力鑑定種子師資研習-科目:資料導向程式設計 經濟部/資訊工業策進會(台中) 6
177 2017年8月3日 巨量資料分析師-能力鑑定種子師資研習-科目:資料導向程式設計 經濟部/資訊工業策進會(高雄) 6
178 2017年8月4日 巨量資料分析師-能力鑑定種子師資研習-科目:資料導向程式設計 經濟部/資訊工業策進會(台北) 6
179 2017年7月29日,8月13日 R軟體與Shiny-Web應用程式設計#2 資訊工業策進會數位教育研究所 12
180 2017年8月19日 Python資料探勘實作*10 資訊工業策進會數位教育研究所 6
181 2017年8月28日 Python文字探勘實作班 中華電信學院 6
182 2017年8月29,30,31日 R語言資料處理應用(中階) 國家發展委員會 18
183 2017年9月2日 R軟體實作班#27 資訊工業策進會數位教育研究所 6
184 2017年9月6,7,8日 R軟體資料探勘與視覺化應用(進階) 國家發展委員會 18
185 2017年9月29日 大數據分析與應用案例 經濟部公業局食品產業導入智慧工廠基礎班(嘉義) 2
186 2017年9月18,20,22,25,27,29日,10月16日 機率統計與R語言基礎-第4期 財團法人中華民國證券暨期貨市場發展基金會 21
187 2017年11月8日 巨量資料處理與分析 勞動部勞動力發展署106年度職能培訓課程臺灣智財科技(股)公司 6
188 2017年11月3,10日 R軟體資料分析與數值計算 工業技術研究院產業學院 12
189 2017年11月11日 R軟體實作班#28 資訊工業策進會數位教育研究所 6
190 2017年11月12日 Python資料探勘實作*11 資訊工業策進會數位教育研究所 6
191 2017年11月28日 R軟體與大數據應用教師研習 二信高中資料處理科教師研習 3
192 2017年12月1日 企業資源規劃與大數據分析應用 龍華科技大學資訊管理系 2
193 2017年12月2日 開放資料於健康照護之分析與應用實力養成 國立臺北護理健康大學資訊管理系 8
194 2017年12月14日 R語言巨量資料分析實作 明新科技大學資訊管理系 3
195 2017年12月16日 大數據分析與應用 君毅高中資訊科教師研習 6
196 2018年1月8日 R軟體實作班#29 資訊工業策進會數位教育研究所 6
197 2018年1月12,13日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/崑山科技大學 12
198 2018年1月22,23日 R語言大數據營運煉金術 工業技術研究院產業學院 12
199 2018年2月3,4日 R與shiny資料視覺化應用 台灣析數 14
200 2018年2月10日 Python資料探勘實作*12 資訊工業策進會數位教育研究所 6
201 2018年3月3日 R軟體與大數據建模#30 資訊工業策進會數位教育研究所 7
202 2018年4月14,15日 R軟體與Shiny-Web應用程式設計#3 資訊工業策進會數位教育研究所 12
203 2018年4月20日 Tableau與R語言大數據分析實作課程 工業技術研究院產業學院 6
204 2018年4月16,23日 R語言大數據營運煉金術 工業技術研究院產業學院 12
205 2018年5月5日 Python資料探勘實作*13 資訊工業策進會數位教育研究所 6
206 2018年5月20日 R軟體與大數據建模#31 資訊工業策進會數位教育研究所 7
207 2018年5月26日 Python與機器學習實務應用 國立清華大學創新育成中心 6
208 2018年6月11,12,15日 R軟體基礎與統計分析應用-第4期 國家發展委員會 18
209 2018年6月25,26,29日 R語言資料處理應用(中階) 國家發展委員會 18
210 2018年7月2,3日 EEC巨量資料處理與分析專業認證研習會 財團法人中華民國電腦技能基金會/靜宜大學資料科學暨大數據分析與應用學系 12
211 2018年7月21日 R軟體與大數據建模#32 資訊工業策進會數位教育研究所 7
212 2018年7月26,27日 R與shiny資料視覺化應用 台灣析數 14
213 2018年7月28日 智慧金融大數據建模與應用$7 資訊工業策進會數位教育研究所 6
214 2018年8月4,5日 R軟體與Shiny-Web應用程式設計#4 資訊工業策進會數位教育研究所 12
215 2018年8月6,7日 Big Data資料分析進階班-R軟體與機器學習 國家衛生研究院 14
216 2018年8月20日 Python資料探勘實作*14 資訊工業策進會數位教育研究所 6
217 2018年9月1日 R軟體與大數據建模#33 資訊工業策進會數位教育研究所 7
218 2018年9月4日 數據資料的分析與應用-以行銷業資料為例 107年度新竹科學園區科技管理專題講座 3
219 2018年9月3,4,5日 R軟體基礎與統計分析應用-第5期 國家發展委員會 18
220 2018年9月11,14,17日 資料分析與視覺化研習 台中市政府 18
221 2018年10月15日 R軟體健保資料庫分析與應用 衛福部慈濟大學研究分中心(台北-國立臺北大學) 6
222 2018年10月19日 R軟體健保資料庫分析與應用 衛福部慈濟大學研究分中心(台南-國立成功大學) 6
223 2018年10月22,23日 Tableau與R語言大數據分析實作 工業技術研究院產業學院 10
224 2018年10月27日 R軟體與大數據建模#34 資訊工業策進會數位教育研究所 7
225 2018年11月17日 巨量資料分析師能力鑑定研習-科目:資料導向程式設計 國立臺中科技大學資訊管理系 6
226 2018年11月20日 巨量資料分析師能力鑑定研習-科目:資料導向程式設計 臺北城市科技大學資訊管理系 3
227 2018年12月22日 Python資料探勘實作*15 資訊工業策進會數位教育研究所 6
228 2019年1月19日 R軟體與大數據建模#35 資訊工業策進會數位教育研究所 7
229 2019年2月23日 Python資料探勘實作*16 資訊工業策進會數位教育研究所 6
230 2019年3月22日 大數據資料分析實務分享 東海大學資訊管理學系 2
231 2019年3月25,26日 Tableau與R語言大數據分析實作 工業技術研究院產業學院 10
232 2019年3月21,28日 R軟體網頁資料擷取 靜宜大學資料科學暨大數據分析與應用學系 6
233 2019年4月15,5月1日 R Shiny製作互動式教材教師成長社群 德明財經科技大學 財務金融系 6
234 2019年4月20,21日 R軟體與Shiny-Web應用程式設計#5 資訊工業策進會數位教育研究所 12
235 2019年5月4,5日 Python資料探勘實作*17 資訊工業策進會數位教育研究所 12
236 2019年5月8日 R軟體開放資料應用-高速公路篇 育達科技大學資訊管理系 3
237 2019年4月27日,5月11日 iPAS巨量資料分析師能力鑑定研習-科目:資料導向程式設計 國立澎湖科技大學 12
238 2019年5月15日 大數據生活應用 育達科技大學資訊管理系週會專題講座 1
239 2019年5月3,9,23日 EEC巨量資料處理與分析專業認證研習 中國科技大學資訊管理系 9
240 2019年5月29日 服務業商品需求預測及價格分析 中華電信學院直播講演 2
241 2019年6月1,2日 R軟體統計分析應用 台灣析數 12
242 2019年6月27日 如何運用大數據協助農業生產 後龍鎮農會 1
243 2019年7月15,16日 Tableau與R語言大數據分析實作 工研院產業學院台北學習中心 10
244 2019年8月11,15日 南京科技职业学院-R软件大数据分析与可视化应用 龍華科技大學資訊管理系 12
245 2019年8月23,26,27日 R軟體基礎與統計分析應用-第6期 國家發展委員會 18
246 2019年8月28,29日 iPAS巨量資料分析師能力鑑定研習-科目:資料導向程式設計 國立高雄科技大學(第一校區) 12
247 2019年8月31日,9月1日 R軟體機器學習應用 台灣析數 12
248 2019年9月2,3日 iPAS巨量資料分析師能力鑑定研習-科目:資料處理與分析概論 國立高雄科技大學(第一校區) 12
249 2019年9月4日 iPAS營運智慧分析師能力鑑定師資研習 工研院產業學院(台北) 6
250 2019年9月5,6,10日 R軟體基礎與統計分析應用 國家發展委員會(台中) 18
251 2019年9月23,24,26日 R軟體資料處理應用(中階) 國家發展委員會 18
252 2019年10月7,8日 R軟體資料視覺化實務應用班(Power BI) 中華電信學院 12
253 2019年10月7,14日 Tableau數據視覺化實戰入門班 天地人學堂 6
254 2019年10月21日 R軟體大數據應用 公平交易委員會 3
255 2019年9月16日,10月28日 Python網路爬蟲與資料分析 台灣析數 12
256 2019年11月11日 健康素食大數據應用 佛光大學樂活產業學院 3
257 2020年3月2日 Python食品工業大數據應用 食品工業發展研究所 1
258 2020年3月7日 R軟體與大數據建模#36 資訊工業策進會數位教育研究所 7
259 2020年3月27日 iPAS初級巨量資料分析師推廣研習 國立高雄科技大學(第一校區)3
260 2020年4月10日 iPAS初級巨量資料分析師推廣研習 中信金融管理學院 3
261 2020年6月23日 R語言資料物件操作與線性模型應用直播課程 工業技術研究院產業學院(90分鐘) 2
262 2020年6月27,28日 Python與R語言巨量資料架構與實作暨iPAS初級巨量資料分析師研習 國立高雄科技大學(楠梓校區) 12
263 2020年7月20日 R程式語言入門工作坊 長榮大學教學資源中心 6
264 2020年7月23日 iPAS巨量資料分析師種子教師研習 國立虎尾科技大學 7
265 2020年7月21,27,29日 R語言及其應用 TibaMe中壢 18
266 2020年8月4,6,11,13日 R語言資料分析起手式 台北市電腦商業同業公會 32
267 2020年8月24,25,26日 R軟體研習班 行政院人事行政總處公務人力發展學院(南投院區) 15
268 2020年8月29,30日 Python機器學習應用課程 台灣析數 12
269 2020年8月14,17,18,27,28,31日 數據挖掘應用案例研討(使用R語言) TibaMe中壢 36
270 2020年9月7日 iPAS巨量資料分析師初級能力鑑定種子研習 國立虎尾科技大學資訊工程系 6
271 2020年9月12,13日 Python資料處理與分析 資訊工業策進會數位教育研究所 14
272 2020年10月19,20,21日 R軟體基礎與統計分析應用-第7期 國家發展委員會 18
273 2020年10月17,18,24,25日 109年iPAS巨量資料分析師職能深化研習營 國立臺北商業大學 28
274 2020年11月1日 Python資料探勘與機器學習實戰班 資訊工業策進會數位教育研究所 6
275 2020年11月7,8日 Python統計分析與最佳化計算 台灣析數 12
276 2020年11月16日 Tableau金融商品案例分析 國立臺北科技大學資訊與財金管理系(所) 2
277 2020年11月21日 iPAS巨量資料分析師初級能力鑑定研習 國立虎尾科技大學資訊工程系 6
278 2020年11月28日 Python語言資料分析應用 國立高雄科技大學商務資訊應用系(楠梓校區) 6
279 2020年12月2,3,4日 R軟體研習班 行政院人事行政總處公務人力發展學院(台北院區) 15
280 2020年12月16,17,18日 R軟體研習班 行政院人事行政總處公務人力發展學院(南投院區) 15
281 2020年12月13日 Python文本數據探勘實作 資訊工業策進會數位教育研究所 6
282 2021年4月12,13日 R軟體研習班第1期 行政院人事行政總處公務人力發展學院(台北院區) 12
283 2021年4月26日 品質控制在生物資訊的應用- AI、大數據與品質研討會 中華民國品質學會 1 -->pdf Rcode
284 2021年5月5日 iPAS巨量資料分析師初級能力鑑定研習 國立虎尾科技大學資訊工程系 7
285 2021年5月3,4,10,11日 Python機器學習與深度學習行銷應用 國立高雄科技大學智慧商務系(燕巢校區) 12
286 2021年6月22日 iPAS營運智慧分析師初級能力鑑定研習(遠距) 露天拍賣 20
287 2021年7月14,15日 iPAS營運智慧分析師初級能力鑑定研習(遠距) 國立臺北科技大學 11
288 2021年7月22,29日 iPAS營運智慧分析師初級能力鑑定研習(遠距) 國立臺北科技大學 14
289 2021年8月4日 iPAS巨量資料分析師初級能力鑑定研習 國立虎尾科技大學資訊工程系 6
290 2021年8月17日 iPAS巨量資料分析師種子教師研習課程(遠距) 國立高雄科技大學研究發展處 8
291 2021年8月20日 巨量資料工程師(遠距) 資訊工業策進會內訓 7
292 2021年8月24日 iPAS營運智慧分析師證照教師研習 中國科技大學企業管理系 7
293 2021年8月26日 產業人才巨量資料分析(遠距) 台灣策略與績效管理學會雲端修煉講座 1
294 2021年9月3日 AI機器學習與深度學習應用-使用Python與R語言教師研習課程(遠距) 明志科技大學 60 -->pdf,code
295 2021年9月8日 Python資料分析與視覺化應用研習 宏國德霖科技大學程式設計教學成長社群 6
296 2021年9月25日 Python資料處理與分析(遠距) 資展國際 7
297 2021年9月29日 輔導學生考照講座(iPAS巨量資料分析師) 國立臺中科技大學應用統計系 2 -->pdf
298 2021年10月07,14日 iPAS巨量資料分析師初級能力鑑定研習 國立高雄科技大學智慧商務系(燕巢校區) 6
299 2021年10月16日 R軟體與大數據建模#37 資展國際 7
300 2021年10月20日 大數據與休閒生活 育達科技大學 育達與人生講座 2 -->pdf
301 2021年11月3,4,5日 R語言資料視覺化應用(入門) 國家發展委員會(遠距) 18
302 2021年11月6日 中華民國品質學會第57屆年會暨2021國際品質管理研討會,論壇:開源AI品質工具-統計品管與實務應用(Python, R and shiny)  德明財經科技大學 2 -->pdf
303 2021年11月19日 資料加值與商務決策技術發展趨勢與人才需求 國立雲林科技大學電子工程系 2
304 2021年11月30日 R軟體研習班 行政院人事行政總處公務人力發展學院台北院區(遠距) 4
305 2021年12月1日 R軟體研習班 行政院人事行政總處公務人力發展學院(南投院區) 6
306 2021年12月11日 Python資料處理與分析 資展國際企業包班(遠距) 7
307 2022年1月18日 AI機器學習與深度學習應用-使用Python與R語言教師研習課程(遠距) 明志科技大學 60 -->pdf,code
308 2022年4月14,15日 R軟體統計研習班 行政院人事行政總處公務人力發展學院(台北院區) 12
309 2022年4月22,29日 巨量資料工程師(遠距) 資訊工業策進會內訓 12
310 2022年5月11日 R語言醫療大數據應用(遠距) 羅東博愛醫院 2
311 2022年5月26日 R與shiny財金應用 崑山科技大學資訊管理系所 6
312 2022年5月27日 iPAS營運智慧分析師初級能力鑑定研習(遠距) 露天拍賣 10
313 2022年6月24日 iPAS巨量資料分析師初級能力鑑定研習(遠距) 露天拍賣 10
314 2022年6月25日 iPAS營運智慧分析師初級能力鑑定研習(遠距) 國立臺北科技大學 6
315 2022年7月12日 AI機器學習與深度學習-基礎與進階研習課程-使用Python與R語言(遠距) 明志科技大學 60 
316 2022年8月10,11,12日 R資料探勘分析-南區(遠距) 國家發展委員會 18
317 2022年9月15,16日 R軟體研習班(遠距)  行政院人事行政總處公務人力發展學院(南投院區) 12
318 2022年9月22日 Tableau資料分析與視覺化工具實作教師工作坊(初階) 長榮大學教學資源中心 3 -->pdf
319 2022年9月29日 Tableau資料分析與視覺化工具實作教師工作坊(進階) 長榮大學教學資源中心 3 -->pdf
320 2022年9月24日,10月1日 Python機器學習應用班 中央大學ERP中心 12
321 2022年10月25,26,27日 R資料探勘分析-北區(遠距) 國家發展委員會 18
322 2022年10月29日,11月5日 SQL與Python資料分析實作班 中央大學ERP中心 12
323 2022年11月9,16日 SPSS市場調查與研究 亞東科技大學工業管理系 4 -->pdf
324 2022年11月17日 Python醫療大數據應用 羅東聖母醫院 2 -->pdf
325 2022年12月1日 Tableau與R語言實務應用(遠距) 長榮大學會計資訊學系 3 -->pdf
326 2022年12月8日 Tableau與資料庫實務應用 長榮大學會計資訊學系 3 -->pdf
327 2023年3月4,11月 SQL與Python資料分析實作班 中央大學ERP中心 12
328 2023年4月9,16,23日 iPAS巨量資料分析師證照輔導班(遠距) 國立高雄科技大學研究發展處 15
329 2023年5月17,18,19日 R軟體基礎與統計分析應用(中階)  國家發展委員會 18
330 2023年5月20日,27日 Power BI入門實作班 中央大學ERP中心 12
331 2023年5月31日 資料科學與大數據分析實務-入門 資展國際 4
332 2023年6月5,6,7日 R語言資料探勘  數位發展部 18
333 2023年6月28日,7月13日 資策會巨量資料工程師內訓(遠距) 資展國際 12
334 2023年9月21,22日 R軟體統計研習班 行政院人事行政總處公務人力發展學院 12
335 2023年10月4,5,6日 R語言資料探勘(遠距)  數位發展部 18
336 2023年10月21日 Python資料處理與分析 資展國際 7
337 2023年10月21日 R軟體與大數據建模 資展國際 7
338 2023年10月17,24,31日,11月7日 智慧製造Tableau運用實務 資訊工業策進會 16
339 2023年10月30日,11月6日 人工智慧企業創新應用 育達科技大學資訊管理系 6
340 2023年10月13,27日,11月3,10日 iPAS營運智慧分析師證照研習 中國科技大學企業管理系 12
341 2023年11月20,27日 AI技術於財務管理之應用(Python) 亞東科技大學資訊管理系 8
342 2023年12月28日 AI與飛機工程應用 虎尾科技大學飛機工程系 3
============
Total: 3131小時

研究

國際期刊

  1. Shiau, J.Y., Lee, M.C., A Warehouse Management System with Sequential Picking for Multi-Container Deliveries, Computers & Industrial Engineering, Vol. 58, pp. 382-392, 2010. (SCI)
  2. Wee, H.M., Lee, M.C., Yu, J.C.P., Wang, C.E., Optimal replenishment policy for a deteriorating green product: Life cycle costing analysis, International Journal of Production Economics, Vol. 133, Issue 2, pp. 603-611, 2011. (SCI)
  3. H.M. Wee, M.C. Lee, P.C. Yang, R.L. Chung, Bi-level vendor–buyer strategies for a time-varying product price, Applied Mathematics and Computation, Vol. 219, Issue 18, pp. 9670-9680, 2013. (SCI)
  4. Longsheng Cheng, Ching-Shih Tsou, Ming-Chang Lee, Li-Hua Huang, Dingwei Song, and Wei-Shan Teng, Tradeoff Analysis for Optimal Multiobjective Inventory Model, Journal of Applied Mathematics, Vol. 2013, Article ID 619898, 8 pages, 2013. (SCI)
  5. Hui-Ming Wee, Wan-Tsu Wang, Ming-Chang Lee, Leopoldo Eduardo Cárdenas-Barrón, Solving a finite horizon EPQ problem with backorders, Applied Mathematical Modelling, Vol. 37, Issues 14–15, pp. 7876-7882, 2013. (SCI)
  6. Ming-Chang Lee, Hui-Ming Wee, Simon Wu, C. Edward Wang, Rih-Lung Chung, A bi-level inventory replenishment strategy using clustering genetic algorithm, European Journal of Industrial Engineering, Vol. 9, No. 6, pp. 774-791, 2015. (SCI)  Abstract
  7. T.S. Lan, M.C. Lee, C.H. Hsieh, K.C. Chuang and J.H. Qin, Using Decision Tree to Modeling a Bad Debt Account Taxation Information System, August, 2019. (SCI) Abstract
國內期刊

  1. 李明昌, 陳品璋, 呂紹嘉, 探討特別檢查困難性質之研究–以某空軍為例, 管理資訊計算, Vol. 4, No. 2, pp. 246-254, 2015.
  2. 藍天雄, 李明昌, 應用系統動態學探討國小國樂團經營與發展之研究, 中華管理發展評論, Special Issue,  June, 2016.
國際研討會

  1. Wee, H.M., Lee, M.C., Yu, J.C.P., Life cycle costing analysis to improve operations and supply chain management of green electronic products, 6th Australian Conference on Life Cycle Assessment, Melbourne, Australia, 2009.
  2. Lee, M.C., Wee, H.M., Optimal bi-level strategies for multiple retailers newsboy, International Conference on Food and Agricultural Supply Chain in Indo-China Region: Science and Technology Point of Views, Thailand, 2010.

國內研討會

  1. 鄒慶士, 李明昌, 黃智合, 楊舒雯, 以賽局理論分析供應鏈中的縱向研發補貼活動, 中國工業工程學會94年度年會暨學術研討會, 中華大學, 新竹市, 台灣, 2005年12月.
  2. 鄒慶士, 李明昌, 賴伯武, 網路媒體使用行為分析-以網路遊戲、網路購物與點選網路廣告為例, 世新2005媒體使用行為與評鑑研討會, 世新大學, 台北市, 台灣, 2005年12月.
  3. 李明昌, 蔡曉玲, 王孔政, 整合型決策樹於ABC存貨管理之研究, 2006年前瞻經營管理學術與實務研討會, 亞洲大學, 台中, 台灣, 2006年5月.
  4. Lee, M.C., Wee, H.M., A Vendor Managed Inventory Model with Deteriorating Items, 中國工業工程學會97年度年會暨學術研討會會議, 中原大學, 中壢, 台灣, 2008年12月.
  5. Yang Ming-Feng, Lee Ming-Chang, Chiang Hui-Ling, Using ANP in Food Quality Management of Bakery Sector, 2009資訊暨產業經營管理國際研討會, 育達商業科技大學, 苗栗縣, 台灣, 2009年6月.
  6. 藍天雄, 李明昌, 郭俞廷, 連鎖餐飲業導入雲端服務系統之結構模型研究, 2012年資訊管理及應用研討會, 育達商業科技大學, 苗栗縣, 台灣, 2012年6月.
  7. 林俊達, 李明昌, 馬美蘭, 黃聖槌, 運用結構方程式模型與層組分析法於供應商之選擇, , 2012年資訊管理及應用研討會, 育達商業科技大學, 苗栗縣, 台灣, 2012年6月.
  8. 李明昌, 喬治華, 彭鵬森, 新竹縣國小學生資訊素養學習成效與課程滿意度研究─以九年一貫97課綱資訊課程教材為例, 2015 創新感性設計學術研討會, 萬能科技大學, 桃園市, 台灣, 2015年4月.
  9. 李明昌, 喬治華, 林茂榮 , 高職教師資訊科技融入教學之影響因素, 2015 創新感性設計學術研討會, 萬能科技大學, 桃園市, 台灣, 2015年4月.
  10. 李明昌, 洪明欽, 蔡宜芳, 國民小學學童課外讀物閱讀態度與興趣研究-以苗栗縣國民小學四年級學童為例, 2015經營管理實務論壇暨研討會, 育達科技大學, 苗栗縣, 台灣, 2015年5月.
  11. 李明昌, 藍俊雄, 蕭才明, 應用層級分析法於戰鬥機模擬機性能提昇之設計研究, 2015年資訊與管理與觀光與休閒研討會, 育達科技大學, 苗栗縣, 台灣, 2015年5月.
  12. 李明昌, 洪明欽, 林經銘, 我國空軍技勤士官應具備關鍵能力之評析-以空軍某聯隊修護技勤士官為例, 2015年資訊與管理與觀光與休閒研討會, 育達科技大學, 苗栗縣, 台灣, 2015年5月.
  13. 李明昌, 陳美琇, 歐陽芳清, 戰鬥機飛行標準檢查作業與重要性評析-以本國某戰機為例, 2015年資訊與管理與觀光與休閒研討會, 育達科技大學, 苗栗縣, 台灣, 2015年5月.
  14. 李明昌, 林俊達, 余立宣, 資料探勘與資訊設備維修之研究, 2015年資訊與管理與觀光與休閒研討會, 育達科技大學, 苗栗縣, 台灣, 2015年5月.
  15. 藍天雄, 李明昌, 謝菁惠, 運用決策樹演算法分析金融機構查調呆帳身課稅資料, 2016年產學專利與資訊實務研究會, 育達科技大學, 苗栗縣, 台灣, 2016年5月.
  16. 李明昌, 鄭淳尹, 空軍軍職人員退役後從事後勤補給委外工作意願之研究, 2017創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2017年5月.
  17. 李明昌, 尤文杰 , 國民小學家長對學校臉書認知與家長滿意度之研究, 2017休閒事業發展學術研討會, 育達科技大學, 苗栗縣, 台灣, 2017年5月.
  18. 李明昌, 劉正傑, 侯成一, 公共管線與開放式資料的加值應用, 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.
  19. 李明昌, 温世丞, 游勇訓, 以資料探勘應用於空氣品質預測(以PM2.5 為例), 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.
  20. 李明昌, 張羽承, 游勇訓, 應用時間序列分析於台灣登革熱案例之研究, 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.
  21. 李明昌, 劉冠宏, 末法時期佛教資訊於佛教網站弘揚之探討-以《多杰羌佛第三世》為例, 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.
  22. 李明昌, 黃慧真, 口訣融入概數教學影響學習成效之研究-以國小四年級學童為例, 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.
  23. 李明昌, 張天隆, 台灣運動彩券消費者之滿意度、忠誠度與消費行為之相關研究─以苗栗縣為例, 2018創新管理與資訊實務研討會, 育達科技大學, 苗栗縣, 台灣, 2018年5月.

學位論文

  1. 李明昌, 整體精確性旋轉型中心組合設計, 中原大學機械工程研究所碩士論文, 1990年6月.
  2. 李明昌,賣方管理存貨與二階規劃策略之最佳補貨存貨模式, 中原大學工業與系統工程研究所博士論文, 2011年6月.

# end

2017年7月26日 星期三

函數原始碼 source code

R是開放原始碼軟體, 以下說明查詢函數的原始碼的方法(參考 1, 2).

簡介

R函數許多原始檔案包括 C, Fortran等程式碼, 常用呼叫其他已編譯完成程式的函數包括: .C .Call, .Fortran, .External, .Internal, .Primitive 等函數. (參考3  R Internals, 2017).

C程式在編譯成R時,可直接經由 primitives(原生) 或 .Internal interface (.內部介面)來呼叫使用, 此方式與 .External interface (.外部介面)類似, 但使用語法不相同.

「.Internal」 和 「.Primitive」 一般用於呼叫 C 的介面:
  • .Internal 是標準的用法,在呼叫C之前可以檢查R程式碼中的參數 .
  • .Primitive 執行效能較高,但不允許在函數中使用R程式.
R的原始碼 R-3.4.1.tar.gz (參考4) 解壓縮之後在 \R-3.4.1.tar\R-3.4.1\src\main 目錄中存放約121個 *.c 原始碼.



查詢函數原始碼

# 1
使用 pryr 套件的 ftype 函數可檢視該函數的種類:

  • regular/primitive/internal function
  • internal/S3/S4 generic
  • S3/S4/RC method

    library(pryr)
    ftype(apply) # "function"

    # 2
    直接輸入函數名稱, 即可顯示原始檔.

    apply



    # 3
    在 RStuido 軟體的程式編輯視窗, 選取 apply , 按 CTRL +  滑鼠左鍵, 可開啟原始檔.



    #4
    getAnywhere {utils} 可查詢函數隸屬於哪些套件與內容. 使用 show_c_source {pryr}可檢視該函數原始檔.




    #5
    使用 methods 函數與 getAnywhere 函數.


    R程式碼


    library(pryr)
    ftype(apply) # "function"
    apply
    
    lapply
    ftype(lapply) # "internal"
    getAnywhere(lapply)
    show_c_source(.Primitive(lapply(x)))
    
    princomp
    ftype(princomp) # "s3" "generic"
    methods(princomp)
    getAnywhere(princomp.default)
    # end

    參考資料

    [1] https://stackoverflow.com/questions/19226816/how-can-i-view-the-source-code-for-a-function

    [2] https://stackoverflow.com/questions/3485228/view-source-code-in-r

    [3] R Core Team, R Internals - Version 3.4.1 (2017-06-30), URL:  https://cran.r-project.org/doc/manuals/r-release/R-ints.pdf.

    [4] R 原始碼, https://cran.r-project.org/src/base/R-3/R-3.4.1.tar.gz

    2017年6月20日 星期二

    r ? <- $ () [] {} [[ @ :: 常用特殊運算子 (operators)

    本篇文章說明使用R時, 會有不同特殊運算子需求, 以下說明使用方式.

    ?問號

    ?符號功能是查詢線上說明, 例: ?plot, 其功能與 help(plot) 相同, 當然使用 ?'plot'?"plot"結果皆相同. 例: ?'+' 可查詢算數運算功能.


    <-運算子

    <-為指派運算子, 將右邊的運算結果指派至左邊物件, 強烈建議指派運算子不要使用等號(=), 以免與函數中的參數相混淆.

    > lotto <- sample(49,6)
    > lotto
    [1] 16  1 49 46 43  7

    $符號

    $符號用於取出物件內容,亦可用於串列資料的讀取.

    # 取出iris資料集的Species欄位資料, 其結果為向量
    iris$Species

    ()小括號

    ()符號大概是接觸R最常使用符號, 其使用時機為函數名稱

    readLines(system.file("DESCRIPTION")) , summary(iris), plot(iris), 如果在小括號前加上資料物件名稱, 此時會有錯誤產生.

    []中括號

    []中括號用於將資料進行條件篩選的指標(indexing), 例: 一維或二維資料物件取出部份符合條件資料.

    # Species為setosa的Sepal.Length資料
    iris$Sepal.Length[iris$Species == "setosa"]

    # 符合Sepal.Length大於5且Sepal.Width大於4的所有資料
    iris[iris$Sepal.Length >5 & iris$Sepal.Width > 4,]

    二維資料如matrix, data.frame 使用[列, 行] 方式取出資料或是取出直行欄位資料.
    # 讀取iris第1至4欄資料
    iris[1:4]

    {}大括號

    {}大括號用於標註套件名稱程式區塊.

    ?plot 會顯示 plot {graphics}表示 plot 函數隸屬於graphics套件.

    # 程式區塊
    > for (i in 1:10) {
    +   if (i %% 2 == 0) {
    +     print(paste0(i, "是偶數"))
    +   } else {
    +     print(paste0(i, "是奇數"))
    +   }
    + }
    [1] "1是奇數"
    [1] "2是偶數"
    [1] "3是奇數"
    [1] "4是偶數"
    [1] "5是奇數"
    [1] "6是偶數"
    [1] "7是奇數"
    [1] "8是偶數"
    [1] "9是奇數"
    [1] "10是偶數"

    [[ 二個左中括號

    如果資料物件有顯示此符號, 一般為串列(list).
    > list("RWEPA", c("R", "Python", "Julia"))
    [[1]]
    [1] "RWEPA"

    [[2]]
    [1] "R"      "Python" "Julia"

    > mylist <- list(web="RWEPA", programming=c("R", "Python", "Julia"))
    > mylist$programming
    [1] "R"      "Python" "Julia"
    > mylist[[2]]
    [1] "R"      "Python" "Julia"

    @運算子

    @符號用於取出S4物件內容(Slot). 目前已套件支援S4物件型態, 例: kernlab 套件. S4資料物件存取須使用@運算子. 
    參考: ?'@' 線上說明
    參考: http://adv-r.had.co.nz/S4.html


    ::運算子 (Double Colon)

    ::運算子一般用於指定套件的函數, 如果不同套件,確有相同函數名稱,此時使用
    套件名稱::函數名稱

    # 本例僅作為::的說明使用, 不加上::運算子亦可執行
    graphics::plot(as.ts(iris[-5]), main="")


    程式碼

    # ?問號
    ?plot
    help(plot)
    ?'plot'
    ?"plot"
    ?'+'
    
    # <-運算子
    # 隨機選取1~49的6個數值
    lotto <- sample(49,6)
    lotto
    
    # $符號
    # 取出iris資料集的Species欄位資料, 其結果為向量
    iris$Species
    
    # () 小括號
    readLines(system.file("DESCRIPTION"))
    summary(iris)
    plot(faithful)
    
    # []中括號
    # Species為setosa的Sepal.Length資料
    iris$Sepal.Length[iris$Species == "setosa"]
    
    # 符合Sepal.Length大於5且Sepal.Width大於4的所有資料
    iris[iris$Sepal.Length >5 & iris$Sepal.Width > 4,]
    
    # 讀取iris第1至4欄資料
    iris[1:4]
    
    # {}大括號
    # 套件名稱
    # plot {graphics}
    
    # 程式區塊
    for (i in 1:10) {
      if (i %% 2 == 0) {
        print(paste0(i, "是偶數"))
      } else {
        print(paste0(i, "是奇數"))
      }
    }
    
    # [[ 串列
    list("RWEPA", c("R", "Python", "Julia"))
    mylist <- list(web="RWEPA", programming=c("R", "Python", "Julia"))
    mylist$programming
    mylist[[2]]

    2017年6月19日 星期一

    r quantmod 套件下載財金資料與錯誤解決方法-Errors Downloading Stock Price Data from Yahoo Finance

    本篇文章說明 quantmod 套件的使用方法與遭遇錯誤 "Errors Downloading Stock Price Data from Yahoo Finance" 的解決方法.

    安裝 quantmod 套件

    install.packages("quantmod")
    library(quantmod)

    下載財金資料 - Input

    使用 getSymbols 函數以下載財金資料, 該函數預設的資料來源是 yahoo finance, 使用 from 參數可設定開始日期, 同理to參數可設定結束日期, 本例使from參數

    getSymbols("IBM", from="2010-1-1")

    理解財金資料 - Process


    • 使用 class 函數可知回傳物件是xts物件與zoo物件, 其中 xts 物件延伸來自於 zoo物件(注意: zoo不是動物園物件 ^_^). 
    • 使用 str 函數, 可知資料有1877列, 6欄資料. 
    • summary函數結果顯示 Index 屬性 為年月日資料
    • head 結果是從2010年1月4日開始, tail 結果表示資料至2017年6月16日結束.
    • 使用?periodReturn 可查詢計算報酬率的使用, 包括週,日,月,季的報酬率.


























    繪製結果 - Output

    • plot 函數即可繪製資料圖形, 預設是以 Close 欄位為主
    • plot(IBM, major.ticks='years') , major.ticks 參數可顯示主要縱軸刻度位置, 本例為年, 此時圖形會較簡潔.
    • chartSeries(IBM) 提供收盤價(Close)與成交量(Volume)股票圖.

    台股範例

    台股使用的符號是 ^TWII, 如果有 NA, 可配合na.omit 將該NA資料刪除.
    getSymbols("^TWII", from="2010-1-1") 

    程式碼

    # 安裝 quantmod 套件
    install.packages("quantmod")
    library(quantmod)
    
    # 下載財金資料
    getSymbols("IBM", from="2010-1-1")
    
    # 理解財金資料
    class(IBM)
    str(IBM)
    summary(IBM)
    
    head(IBM)
    tail(IBM)
    
    # ?periodReturn
    allReturns(IBM)
    periodReturn(IBM, period='monthly',subset='2013::')  # 回傳自2013年至目前報酬率
    periodReturn(IBM, period='yearly',subset='2013')     # 回自2013年報酬率
    monthlyReturn(IBM, subset='2013::')
    yearlyReturn(IBM, subset='2013::')
    
    # 繪製結果
    plot(IBM)
    plot(IBM, major.ticks='years')
    chartSeries(IBM)
    
    # 台股範例,讀取資料-台灣加權指數 TWII (TSEC weighted index)
    getSymbols("^TWII", from="2010-1-1")
    dim(TWII)
    summary(TWII)
    chartSeries(TWII)



    !!!Errors Downloading Stock Price Data from Yahoo Finance


    在使用 quantmod 套件時, 如果資料下載顯示有錯誤, 參考以下步驟設定, 如果一般安裝與下載皆正常, 則不用使用此方法.

    步驟1: 下載 Rtools 程式, 本程式具有建立套件等輔助工具
    連結 http://cran.csie.ntu.edu.tw/bin/windows/Rtools/ , 選取 Rtools Downloads 下載.

    步驟2: 安裝 Rtools 程式, 使用預設安裝選項,不可更改安裝路徑, 安裝完成後的目錄為 C:\Rtools

    步驟3: 在 RStudio 程式中安裝 devtools 套件, 輸入 install.packages("devtools")

    步驟4: 在 RStudio 程式中輸入以下R程式即可完成 quantmod 安裝.

    devtools::install_github("joshuaulrich/quantmod", ref="157_yahoo_502")
    

    # 參考: https://robotwealth.com/solved-errors-downloading-stock-price-data-yahoo-finance/
    # end

    2017年3月6日 星期一

    機率分配查表與 pnorm, qnorm應用

    統計學課本最後附錄包括標準常態分配之累積機率值等表格, 以下說明表格之使用與R內建 pnorm, qnorm之應用.

    已知標準常態分配 Z 之累積機率值可以直接選取 prob.pdf. pdf 第15頁註明 P(Z <= z) 表示標準常態機率分配的從 -∞  累計至z值的機率.  

    例1

    P(Z <= 1.96)=?

    方法1: 查表
    pdf第16頁,  z值找到1.9 那一列, 右側對應上面 0.06的對應值是 0.9750, 
    因此 P(Z <= 1.96)=0.9750


    方法2:  pnorm
    輸入?pnorm  結果顯示是計算 "distribution function", 預設值 lower.tail = TRUE 表示計算 P(Z <= z) .
    > pnorm(1.96)  # 結果與查表相同
    [1] 0.9750021

    例2

    P(Z > 1.96)=?

    方法1: 查表
    pdf第16頁,  z值找到1.9 那一列, 右側對應上面是 0.06的對應值是 0.9750, 
    因此 P(Z <= 1.96)=0.9750, 
    所以  P(Z > 1.96) = 1- P(Z <= 1.96) = 1 - 0.9750 =  0.025

    方法2:  pnorm
    輸入?pnorm  結果顯示是計算 "distribution function",  lower.tail = FALSE 表示計算 P(Z > z) .
    > pnorm(1.96,  lower.tail = FALSE)  # 結果與查表相同
    [1]  0.0249979

    說明: 如果隨機變數X符合常態分配 X~N(μ, σ^2), 記得 先轉換為 Z =(X-μ)/σ 標準常態分配.

    例3

    P(Z > z) =  0.05, 計算z=?

    方法1: 查表
    P(Z > z) =  0.05,  P(Z <= z) =  1 -  P(Z > z) =1-  0.05 = 0.95, 查表沒有查詢到 0.95累積機率值,  P(Z <= 1.64) =0.945,  P(Z <= 1.65) =0.9505, 0.95介於 0.945與0.9505之間, 即 z值介於 1.64 與 1.65  之間, 採用內插法:

    (z-1.64)/(1.65-1.64) =  (0.95-0.9495)/(0.9505-0.9495), z=1.645

    方法2:  qnorm
    輸入?qnorm  結果顯示是計算 " quantile function",  設定 lower.tail = FALSE 表示計算 P(Z > z) .
    > qnorm(0.05,  lower.tail = FALSE)  # 結果與查表相同
    [1]  1.644854

    例4

    P(Z > 3.69)=?

    方法1: 查表
    pdf第16頁,  z值最多3.59 因此本法無效.

    方法2:  pnorm
    > pnorm(3.96,  lower.tail = FALSE)  # 結果為3.747488*10^(-5)=0.00003747488
    [1]  3.747488e-05

    結論: 
    1. 如果隨機變數X符合常態分配 X~N(μ, σ^2), 記得 先轉換為 Z =(X-μ)/σ 標準常態分配.
    2. pnorm --> 給定z值計算機率值
    3. qnorm --> 給定機率值計算z值

    思考題:

    如何應用R語言列出標準常態分配之累積機率值表格, 歡迎各位R友~~~動動腦 ^_^
    # end

    2017年2月11日 星期六

    RStudio 錯誤訊息 Error: invalid multibyte character in parser at line 1

    2017.7.13 更新:

    近日有R友建議R程式碼中不要使用全型字型,例:不要使用全型空白或許可以改善此問題.

    最近安裝最新版 R-3.3.2 + RStudio-1.0.136, 使用時經常看到很煩人的訊息:
    Error: invalid multibyte character in parser at line 1
    錯誤畫面如下圖所示:


    這個錯誤真的很難完全排除, 如果不想安裝舊的版本, 此時可以考慮安裝 RStudio每日更新版:
    RStudio daily builds  網頁 https://dailies.rstudio.com/ 選取 [Windows RStudio-1.1.71.exe] 下載並安裝完成後就沒有錯誤問題啦.



    下圖為安裝新版後的正常顯示結果:

    # end