本文件以建立自動化資料分析為核心,並以 Microsoft Office Excel 與 Python / R 為工具進行實作。
本完整課程建議以 6 小時以上進行授課。
The document provided you the knowledge of automatic manufacturing system in data analysis. The tool demonstrated in the document included Microsoft Office Excel and Rython / R (programming languages).
Six-hour teaching is suggested for the class.
4. Excel 中常用資料前處理函式
N
N
'05' 0
0
5 0
0
資料整合 資料清理 資料轉換
IF 檢查條件
COUNTIF 條件計數
DATEDIF 日期差値
LEN 字串長度
MID 中間子字串
LEFT 左取字串
RIGHT 右取字串
CONCATENATE 字串組合
VLOOKUP 搜尋與回傳
LOOPUP 搜尋與回傳
DATE 搜尋與回傳
YEAR 取得年份
MONTH 取得月份
TODAY 今日日期
NOW 今日日期時間
VALUE 轉換數字
INT 轉換整數
FIND 搜尋子字串
TYPE 資料屬性
RAND 0-1 亂數
其他常用
4
42. Linux 批次執行檔 (.sh) 建立 42
批次檔
變數與環境設置
回傳處理狀況
頭
尾
流程管理 (進階自動化)
資料前處理 (Python)
結果產出 (R)
身
$ vim /home/jkw/automation.sh
終端機
1
圖形化
#!/bin/bash
# Comment
# Head
# Body
# Tail
2
43. 簡單程式範例 43
# coding: utf-8
# author : jiankaiwang (https://welcome-jiankaiwang.rhcloud.com/)
print("prepare data in python")
exit(0)
Python 範例
# author : jiankaiwang (https://welcome-jiankaiwang.rhcloud.com/)
print("plot a image in rscript")
quit(save = "no", status = 0)
R 範例
1
1
2
2
1 2處理內容 執行回傳狀態 値 狀態
0 成功
1 錯誤
44. 多樣化執行環境 44
1
> python C:automationPrepareData.py [args]
執行 Python
> Rscript C:automationplot.r [args]
執行 R
> sas -sysin C:automationplot.r –log C:automationplot.log
執行 SAS
> C:automationhelloworld.exe
Windows 執行檔
2
$ /home/jkw/helloworld
Linux 執行檔
45. SET localPath=C:UsersJianKaiWangDesktopautomation
REM prepare data in Python
python %localPath%SimplePython.py
REM plot from data in R
Rscript %localPath%SimpleR.r
Windows 製作批次檔建立 45
批次檔
變數與環境設置
回傳處理狀況
頭
尾
流程管理 (進階自動化)
資料前處理 (Python)
結果產出 (R)
身
1
2
3
46. Linux 製作批次檔建立 46
批次檔
變數與環境設置
回傳處理狀況
頭
尾
流程管理 (進階自動化)
資料前處理 (Python)
結果產出 (R)
身
#!/bin/bash
localPath='/home/jkw'
# prepare data in Python
python $localPath/SimplePython.py
# plot from data in R
Rscript $localPath/SimpleR.r
1
2
3
47. 執行批次檔 47
SET localPath=C:UsersJianKaiWangDesktopautomation
REM prepare data in Python
python %localPath%SimplePython.py
REM plot from data in R
Rscript %localPath%SimpleR.r
Windows
Linux
#!/bin/bash
localPath='/home/jkw'
# prepare data in Python
python $localPath/SimplePython.py
# plot from data in R
Rscript $localPath/SimpleR.r
> C:automationautomation.bat
1 2
$ chmod a+x /home/jkw/automation.sh
$ /home/jkw/automation.sh
1
59. Linux (含 Mac) 工作排程器介紹 59
$ sudo vim /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
30 2 * * 1 root /usr/bin/letsencrypt renew >> /var/log/le-renew.log
#
10 8 * * * jkw sh /home/jkw/opendataplatform/opendataapi.sh
*/5 * * * * jkw /home/jkw/automation.sh
排程器
排程設定
1
2
64. @echo off
SET localPath=C:UsersJianKaiWangDesktopautomation
REM prepare data in Python
python %localPath%SimplePython.py
if errorlevel 1 (
echo 資料準備錯誤
EXIT /b 1
) else (
echo 資料準備正確
)
REM plot from data in R
Rscript %localPath%SimpleR.r
if errorlevel 1 (
echo 產出結果失敗
EXIT /b 1
) else (
echo 成功產出結果
)
EXIT /b 0
Windows 偵測性自動化流程 64
批次檔
變數與環境設置
回傳處理狀況
頭
尾
流程管理 (進階自動化)
資料前處理 (Python)
結果產出 (R)
身
65. Linux 偵測性自動化流程 65
批次檔
變數與環境設置
回傳處理狀況
頭
尾
流程管理 (進階自動化)
資料前處理 (Python)
結果產出 (R)
身
#!/bin/bash
localPath='/home/jkw'
# prepare data in Python
python $localPath/SimplePython.py
if [ $? = 1 ]; then
echo "資料準備錯誤"
exit 1
else
echo "資料準備正確"
fi
# plot from data in R
Rscript $localPath/SimpleR.r
if [ $? = 1 ]; then
echo "產出結果失敗"
exit 1
else
echo "成功產出結果"
fi
exit 0