2013年9月10日 星期二

2013 R Taiwan 研討會與徵求演講! (12月6日星期五)

Dear All,

中華R軟體學會將在102年12月6日 (星期五) 辦理"2013 R Taiwan 研討會", 參考以下說明, 期待您的參與.

2013 R Taiwan 研討會與徵求演講! (12月6日 星期五)

大會宗旨:本研討會旨在提供學術界與產業界一個交流平台,針對 R軟體各領域的應用,進行觀摩討論,期使R軟體深植於學術研究與產業活動中。

舉辦日期:102年12月6日 (星期五)

舉辦地點:德明財經科技大學(綜合大樓A506會議廳)

主辦單位:中華R軟體學會‧德明財經科技大學(管理學院物流管理系暨連鎖加盟學位學程)

協辦單位:台灣資料科學與商業應用協會‧台北商業技術學院資訊與決策科學研究所‧
                    東吳大學海量資料分析研究中心‧育達科技大學資訊管理系所‧Taiwan R User Group

徵求主題:
請提供一頁A4摘要,寄送至下列電子郵件(event2013@twdatascience.org),內容與R軟體在下列主題之應用相關,但不僅限於下列應用:

1.資料探勘
2.機器學習
3.多變量統計
4.穩健統計方法
5.資料視覺化
6.實驗設計
7.最佳化應用
8.生物資訊學
9.計量經濟學與財務
10.環境與生態統計
11.醫藥統計學
12.心理計量學
13.空間統計學
14.社會與政治科學統計
15.高效能運算

大會網址:http://www.twdatascience.org/event2013

★歡迎對 R 軟體有興趣之各界人士踴躍參加★

2013年9月6日 星期五

資料視覺化( data visualization) - 如何將 R 與 Google 地圖相結合

資料視覺化應用包括將地理位置資料 (如: 經,緯度資料) 直接顯示於地圖之中. R 包括多種套件可完成地理資料視覺化, 本篇介紹 RgoogleMaps 套件.

範例: 育達科技大學在哪裡, 標示主要交通方式.

說明:
1. 先找出 育達科技大學 的經, 緯度資料, 方法: 在Google Map 中輸入"育達科技大學 ", 在地圖中選取該位置 \ 按 右鍵 \ 這是哪裹?畫面上方顯示 24.650138,120.847179 即為經度, 緯度.

2. 同理依序找出下列位置度, 緯度:
    竹南交流道 Zhunan Intercept
    頭份交流道 Toufen Intercept
    竹南火車站 Zhunan Station

3. 參考以下程式碼: R-YuDa-map-RgoogleMaps.R

# title: maps with RgoogleMaps package
# date: 2013.9.6

library(RgoogleMaps)
# location: YuDa University, Zhunan Station, Zhunan and Toufen Intercept
lats <- c( 24.650138, 24.686601, 24.679427, 24.691631)
lons <- c(120.847179, 120.88063, 120.846945, 120.918313)
center <- c(mean(lats), mean(lons))
zoom <- min(MaxZoom(range(lats), range(lons)))

# download a static map from the Google server
MyMap <- GetMap(center=center, zoom=zoom, markers = "&markers=color:blue|label:G|24.651113,120.842976&markers=color:red|label:T|24.686601,120.88063&markers=color:red|color:red|label:I|24.679427,120.846945&markers=color:red|color:red|label:I|24.691631,120.918313", destfile="YuDa-map.png")

# add arrows
s <- seq(length(lats)-1)
PlotArrowsOnStaticMap(MyMap, lat0=lats[1], lon0=lons[1]+0.001, lat1=lats[s+1]+0.001, lon1=lons[s+1], col='red', lwd=2, code=1)

# add texts
TextOnStaticMap(MyMap, lat=lats[1],lon=lons[1], "Yu Da University of Science and Technology", cex=0.8, col='red', add=TRUE)
TextOnStaticMap(MyMap, lat=lats[2],lon=lons[2], "Zhunan Station", cex=0.8, col='red', add=TRUE)
TextOnStaticMap(MyMap, lat=lats[3],lon=lons[3], "Zhunan Intercept", cex=0.8, col='red', add=TRUE)
TextOnStaticMap(MyMap, lat=lats[4],lon=lons[4], "Toufen Intercept", cex=0.8, col= 'red', add=TRUE)
# end
4. 連結四個位置與箭頭之結果.

2013年8月10日 星期六

RODBC 與 SQL Server 資料匯入與寫入

Problem:
如何將 R 資料寫入至 SQL Server 資料庫

Analysis:
針對 SQL Server 資料庫可採用 RODBC 套件, 其中 sqlQuery 指令可執行資料匯入至R與將R物件寫入SQL資料庫.

步驟 1


先在 ODBC 管理員中新增 SQL Server ODBC 資料來源, 考慮連結名稱是 「R_SQL2008」.
步驟 2
考慮某 Northwind 資料庫, 其中包括 Orders 資料表, 如下圖所示.

步驟 3
先執行 library(RODBC), 再利用 odbcConnect 連結至SQL Server ODBC 資料來源, 最後配合 sqlQuery 與 SQL 指令將資料匯入至R. 依 class 結果可知為資料框架物件(data.frame). 利用 table 指令可計算各運送國家的個數. 平均數 mean 亦可加以使用.

步驟 4
考慮 Shippers 資料表有3筆記錄.

步驟 5
利用 names 指令可了解資料表欄位名稱

步驟 6
在 sqlQuery 中配合 INSERT INTO  指令可將R資料寫入SQL 資料庫, 其中第一個欄位(ShipperID)為自動編號主索引鍵, 因此該欄位不用加在 INSERT INTO 指令中, 最後再次讀取資料已新增為4筆.

步驟 7
新增資料 INSERT 語法如下: 

完整R code:

# end
謝謝 R user- Chang 提供此問題. 

Data mining with Rattle – ROC curve (SVM and NN)

# 範例說明 R圖形化使用者介面 rattle 套件 執行 ROC curve 比較


步驟 1
安裝並執行 rattle 套件-資料探勘使用者介面
install.packages(“rattle”)
library(rattle)
rattle()

步驟 2
匯入kernlab套件的資料集spam, 一般採用 spam {kernlab} 表示, 步驟如下:

Data \ Source: 選取 Library \ Data Name: 選取 「spam:kernlab:Spam E-mail Database」 \ 按 執行.

匯入 spam 資料結果, 此為垃圾郵件資料集, 其中第58個變數是目標變數且為類別型資料, 在R中屬於因子(factor)資料物件, 在最下列訊息區顯示全部有 4601筆觀測值, 58個輸入變數, 可使用分類模型.

步驟 3
Rattle 的Support Vector Machines 方法, 採用 kernlab 套件的ksvm方法, 在 R console 視窗中輸入以下指令可查詢其使用說明.
library(kernlab)
?ksvm

Model \ Type 選取 SVM \ Kernel 採用預設值 Radial Basis (rbfdot) \ 按 執行.

步驟 4
使用 Neural Network 方法, Rattle 採用 nnet 套件的nnet 方法, 該方法採用Feed-forward neural networks 且為一個隱藏層 (hidden layer), 預設節點數是十個.
Model \ Type 選取 Neural Net \ 按 執行.

步驟 5
模式比較主要採用 ROC curve 方法.

Rattle 會針對之前已完成的模型進行效益評估.

Evaluate \ Type: 選取 ROC \ Model: SVM , Neural Net 打勾 \ 按 執行.

步驟 6
考慮實際結果有二種情形(Yes, No), 在 ROC curve視窗中x軸表示 False Positive (FP) rate (實際為N, 但預模型分類為Y, 此時FP愈小愈好), y軸表示 TP rate (實際為Y, 且預模型分類為Y, 此時FP愈大愈好), 因此, ROC曲線愈偏向左上角愈好,即曲線以下面積較大者較佳. 由圖形可知 ksvm 較偏向於左上角位置, 因此採用 svm 較佳。

下載說明: r-rattle-ROCcurve.pdf
# end

2013年8月9日 星期五

boxplot 繪圖-x 軸字型大小設定

Problem:
採用 boxplot 繪圖時,  x軸群組個數太多有可能會導致x軸群組文字無法顯示.

Analysis:
採用 cex.axis 指令即可放大(>1)或縮小(<1)其大小, 參考以下R指令:




比較下列圖形, 左圖預設值結果無法完整呈現群組文字, 右圖採用 cex.axis 參數設定, x軸群組文字較小且10個x軸群組文字皆可顯示.


感謝 R user- James 提供此問題.

2013年5月25日 星期六

R的圖形輸出

感謝 R user- James 提供此問題:

Problem:
R的圖形輸出其畫質會變得不是很清晰等問題.

Analysis:
R中可以採用多種不同輸出格式, 其中以 pdf 格式較佳, 如果 tiff , eps 有做參數調整, 應該也是不錯的選擇, 詳細設定參考 ?tiff , ?pdf 指令。在 RStudio 軟體中亦可直接選取 Export \ Save Plot as Image ... 輸出圖檔, 參考以下 R codes.

graphics-export.R


pdf原圖

pdf 放大200%

使用wubi軟體安裝 Ubuntu

# 本篇文章說明在Windows 環境中利用wubi免費軟體安裝 Ubuntu.


# step 1 下載 wubi


連結wubi 首頁, http://wubi-installer.org/

選取 [Get the installer]

選取 [Not now, take me to the download]

按 [儲存]

# step 2 安裝32位元 Ububtu

因執行環境為 Windows 7 - 64位元, 因此預設安裝64位元Ubuntu, 如果希望安裝 32位元Ubuntu, 則須執行此步驟, 否則直接採用step 3.

選取 wubi.exe, 按 右鍵 \ 建立捷徑

按 右鍵 \ 內容 \ 目標中最後輸入 「--32bit」, 按 確定.

雙按此捷徑即可安裝 32位元 Ubuntu.

# step 3 安裝64位元 Ububtu

選取 wubi.exe

Ubuntu安裝程式畫面中輸入 使用者名稱, 密碼.

安裝畫面.


安裝完成後選取 控制台 \ 程式和功能 會包括 Ubuntu 的程式, 如果將來不再使用, 按 [解除安裝變更] 即可移除 Ubuntu.

# step 4 使用 Ububtu

重新開機會有二個選項 Windows 7 與 Ubuntu, 選取第2個 Ubuntu 即可使用 Ubuntu.