2015年12月4日 星期五

刪除已儲存工作空間

如何刪除已儲存工作空間?

每次啟動R會顯示"[Previously saved workspace restored]", 打開我的文件也找不到.RData 檔案, 執行以下指令即可刪除此檔案, 未來開啟R也不會顯示此訊息:
unlink(".RData")

2015年11月12日 星期四

R Taiwan 2015 研討會

R Taiwan 2015 研討會網址:

http://event.twdatascience.org/

活動日期: 2015年12月18日(星期五)  09:00AM ~ 16:50PM

早鳥報名:於10/29~12/01 期間內報名者,報名費用為 1,600 元整。
一般報名:於12/02~12/16 期間內報名者,報名費用為 2,000 元整。

活動地點:臺北市中正區貴陽街一段56號(東吳大學 城中校區)

主辦單位:
中華R軟體學會、臺灣資料科學與商業應用協會、國立臺北商業大學資訊與決策科學研究所資料科學應用研究中心

協辦單位:
東吳大學巨量資料管理學院、財團法人中華民國電腦技能基金會、台北市電腦商業同業公會
(資料如有更動, 以研討會為主)


2015年9月3日 星期四

如何將資料為每列表示變數資料轉換為行資料

Problem:

如何將資料為每列表示變數,每行表示一筆記錄資料轉換為每列表示記錄,每行表示變數之資料框(data.frame)物件,此功能類似 Excel \ 複製 \ 右鍵 \ 貼上選項 \ 轉置.

感謝 R user - Hsieh 提供此問題

Analysis:

# 匯入資料 read.table 函數中,可以先設定 stringsAsFactors=FALSE, 如此所有資料可先保留字串資料型態
> myData <- read.table("rowdata.csv", sep=",", stringsAsFactors=FALSE)
> myData
     V1   V2   V3    V4    V5   V6
1  編號    1    2     3     4    5
2  型式  AAA  AAA   BBB   BBB  CCC
3 測量1   10   20    30    40   50
4 測量2  100  200   300   400  500
5 測量3 1000 2000  3000  4000 5000
6  結果   OK   OK ERROR ERROR   OK
> str(myData)
'data.frame': 6 obs. of  6 variables:
 $ V1: chr  "編號" "型式" "測量1" "測量2" ...
 $ V2: chr  "1" "AAA" "10" "100" ...
 $ V3: chr  "2" "AAA" "20" "200" ...
 $ V4: chr  "3" "BBB" "30" "300" ...
 $ V5: chr  "4" "BBB" "40" "400" ...
 $ V6: chr  "5" "CCC" "50" "500" ...


# 資料轉換(t函數),結果是矩陣 matrix,此結果與data.frame之需求不符合
> t(myData)
   [,1]   [,2]   [,3]    [,4]    [,5]    [,6]   
V1 "編號" "型式" "測量1" "測量2" "測量3" "結果" 
V2 "1"    "AAA"  "10"    "100"   "1000"  "OK"   
V3 "2"    "AAA"  "20"    "200"   "2000"  "OK"   
V4 "3"    "BBB"  "30"    "300"   "3000"  "ERROR"
V5 "4"    "BBB"  "40"    "400"   "4000"  "ERROR"
V6 "5"    "CCC"  "50"    "500"   "5000"  "OK"   
> class(t(myData))
[1] "matrix"


# 將資料轉換之矩陣再轉為資料框 data.frame,此結果應該是可以使用
> myData.df <- as.data.frame(t(myData), stringsAsFactors=FALSE)
> str(myData.df)
'data.frame': 6 obs. of  6 variables:
 $ V1: chr  "編號" "1" "2" "3" ...
 $ V2: chr  "型式" "AAA" "AAA" "BBB" ...
 $ V3: chr  "測量1" "10" "20" "30" ...
 $ V4: chr  "測量2" "100" "200" "300" ...
 $ V5: chr  "測量3" "1000" "2000" "3000" ...
 $ V6: chr  "結果" "OK" "OK" "ERROR" ...
> myData.df
     V1   V2    V3    V4    V5    V6
V1 編號 型式 測量1 測量2 測量3  結果
V2    1  AAA    10   100  1000    OK
V3    2  AAA    20   200  2000    OK
V4    3  BBB    30   300  3000 ERROR
V5    4  BBB    40   400  4000 ERROR
V6    5  CCC    50   500  5000    OK


# 欄位名稱調整
> names(myData.df) <- myData.df[1,]
>

# 考慮刪除列名稱
> row.names(myData.df) <- NULL
>

# 刪除第1列多餘資料
> (myData.df <- myData.df[-1,])
   編號 型式 測量1 測量2 測量3  結果
V2    1  AAA    10   100  1000    OK
V3    2  AAA    20   200  2000    OK
V4    3  BBB    30   300  3000 ERROR
V5    4  BBB    40   400  4000 ERROR
V6    5  CCC    50   500  5000    OK
> str(myData.df)
'data.frame': 5 obs. of  6 variables:
 $ 編號 : chr  "1" "2" "3" "4" ...
 $ 型式 : chr  "AAA" "AAA" "BBB" "BBB" ...
 $ 測量1: chr  "10" "20" "30" "40" ...
 $ 測量2: chr  "100" "200" "300" "400" ...
 $ 測量3: chr  "1000" "2000" "3000" "4000" ...
 $ 結果 : chr  "OK" "OK" "ERROR" "ERROR" ...


# 目前資料轉換正常,唯數值字料尚須轉換
# 選取1欄,將字串轉換為數值資料
> myData.df$測量1
[1] "10" "20" "30" "40" "50"
> as.numeric(myData.df$測量1)
[1] 10 20 30 40 50


> # 如果資料欄位較多,似乎須考量非一行一行轉換!
> # 判斷將所有欄資料並轉換為數值資料,保留無法轉換為數值之字串資料
> for (i in 1:dim(myData.df)[2]) {
+   if (all(!is.na(as.numeric(myData.df[,i])))) {
+     myData.df[,i] <- as.numeric(myData.df[,i])
+   }
+ }
Warning messages:
1: NAs introduced by coercion 
2: NAs introduced by coercion 


> # 第1,3-5欄已轉換為數值資料
> str(myData.df)
'data.frame': 5 obs. of  6 variables:
 $ 編號 : num  1 2 3 4 5
 $ 型式 : chr  "AAA" "AAA" "BBB" "BBB" ...
 $ 測量1: num  10 20 30 40 50
 $ 測量2: num  100 200 300 400 500
 $ 測量3: num  1000 2000 3000 4000 5000
 $ 結果 : chr  "OK" "OK" "ERROR" "ERROR" ...
> myData.df
   編號 型式 測量1 測量2 測量3  結果
V2    1  AAA    10   100  1000    OK
V3    2  AAA    20   200  2000    OK
V4    3  BBB    30   300  3000 ERROR
V5    4  BBB    40   400  4000 ERROR
V6    5  CCC    50   500  5000    OK
> # end


R code:

####################################
# title    : 列轉換為行之數值資料
# date     : 2015.9.3
# author   : Ming-Chang Lee
# email    : alan9956@gmail.com
# RWEPA    : http://rwepa.blogspot.tw/
# encoding : UTF-8
####################################
# 匯入資料
myData <- read.table("rowdata.csv", sep=",", stringsAsFactors=FALSE)
myData
str(myData)

# 資料轉換(t函數),結果是矩陣 matrix
t(myData)
class(t(myData))

# 將資料轉換之矩陣再轉為資料框 data frame
myData.df <- as.data.frame(t(myData), stringsAsFactors=FALSE)
str(myData.df)
myData.df

# 欄位名稱調整
names(myData.df) <- myData.df[1,]

# 考慮刪除列名稱
row.names(myData.df) <- NULL

# 刪除第1列多餘資料
(myData.df <- myData.df[-1,])
str(myData.df)

# 目前資料轉換正常,唯數值字料尚須轉換
# 選取1欄,將字串轉換為數值資料
myData.df$測量1
as.numeric(myData.df$測量1)

# 如果資料欄位較多,似乎須考量非一行一行轉換!
# 判斷將所有欄資料並轉換為數值資料,保留無法轉換為數值之字串資料
for (i in 1:dim(myData.df)[2]) {
  if (all(!is.na(as.numeric(myData.df[,i])))) {
    myData.df[,i] <- as.numeric(myData.df[,i])
  }
}

# 第1,3-5欄已轉換為數值資料
str(myData.df)
myData.df

# end

2015年4月30日 星期四

2015 資料科學與產業應用工作坊


「2015 資料科學與產業應用工作坊」緣起與展望

資料科學(Data Science)運用統計學、機器學習與電腦科學,以創建預測模型。它是一門比統計學更寬更廣的跨學科新興領域,它管控從假說與資料,到可行動方案的整個資料蒐集、分析與結果呈現之流程。資料科學的許多理論基礎來自於統計學,但就工程面而言,資料科學大幅受到資訊科技的影響,例如:資料庫理論、平行運算理論、資料串流技術與資料倉儲技術等。

資料科學家負責取得資料、操弄資料、選擇建模技術、撰寫程式碼、核驗與呈現結果等任務。面對當前多樣化的資料來源,如何有效發展資料視覺化設計、應用機器學習與文字探勘分析技術、以及建構互動式分析平台,已經成為許多產業重要且迫切的需求。

英國詩人William Blake曾說:『一沙一世界,一花一天堂,雙手握無限,剎那即永恆』。資料科學家們應從基本功做起,就身邊垂手可得的easy data,進行有意義的資料分析(meaning data analysis),逐步體會由小看大的意境。2015資料科學與產業應用工作坊早上以兩場R語言教程開場,下午進行資料視覺化、文字資料探勘與互動式界面設計等三場案例實作工作坊。全程安排具備豐富資料分析實戰經驗的顧問團隊,帶領與會人士玩轉各式資料集,引導使用者深入瞭解資料背後的意涵,進而洞悉其商業價值,釐定更精準的決策。

活動日期: 2015年06月05日(星期五)  09:00AM ~ 16:50PM

第一階段早鳥報名:(05/04~05/10) 報名費 $2500元
第二階段早鳥報名:(05/11~05/20) 報名費 $3000元
最後階段原價報名:(05/21~05/27) 報名費 $5000元

活動地點:中華電信股份有限公司   板橋電信學院G701室

主辦單位:臺灣資料科學與商業應用協會、中華R軟體學會、國立臺北商業大學資訊與決策科學研究所資料科學應用研究中心

協辦單位:中華電信學院、德明財經科技大學、財團法人中華民國電腦技能基金會、台北市電腦商業同業公會、東吳巨量資料管理學院、中國電機工程學會

2015年3月6日 星期五

Ubuntu 安裝不同版本R

  • 前言

參考 Ubuntu 安裝 R 文章可在 Ubuntu 作業系統中安裝最新R軟體.實務應用時可能配合某些套件或系統開發而必須使用舊版本R,例如:R-2.15.3. 本篇文章說明如何在Ubuntu  作業系統中安裝與使用不同版本R.
  • 下載其他版本R原始檔方法
選取R首頁 http://www.r-project.org/ 
--> 按左側 Download, Packages [CRAN] 
--> 選取適當 CRAN Mirrors , 本例以第一個為範例說明 0-Cloud http://cran.rstudio.com/ 
--> 在 The Comprehensive R Archive Network 視窗中選取位於最底部 [Source code of older versions of R is available here.] http://cran.rstudio.com/src/base/
--> 選取適當的不同R版本,本例以[R-2]為主
--> 選取 [R-2.15.3.tar.gz] 並儲存檔案 http://cran.rstudio.com/src/base/R-2/R-2.15.3.tar.gz

上述說明亦可以在終端機視窗輸入以下指令, 此方法將用於以下步驟2.
wget http://cran.rstudio.com/src/base/R-2/R-2.15.3.tar.gz

  • 安裝不同版本R

  • 步驟1 建立 usr/local/R 目錄
# 方法1
sudo cd /usr/local
sudo mkdir R

# 方法2
# sudo mkdir -p /usr/local/R
  • 步驟2 下載原始檔
sudo wget http://cran.r-project.org/bin/linux/ubuntu/precise/r-base_2.15.3.orig.tar.gz
sudo tar zxvf r-base_2.15.3.orig.tar.gz
cd R-2.15.3/

  • 步驟3 安裝必備套件
sudo apt-get install tk-dev gcc gfortran texlive texlive-fonts-extra libreadline-dev xorg-dev libxml2-dev libcurl4-gnutls-dev

  • 步驟4 編譯
sudo ./configure
sudo make
sudo make check
sudo make install
  • 步驟5 執行
./R
# end