iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 12
0
Big Data

R語言與機器學習見面會系列 第 12

Day12 R語言外部資料介面(Excel)

終於,程式猿用了6天(Day6-Day11)砍就了30天見面會的第二個主題:R語言基礎!
我們曾使用過R的內建資料集(iris)作練習,不過在實戰中,資料集則多半自外部,可能會收到檔案,也可能一個資料服務提供來源,接下來幾天,我們進入第三個主題:R語言資料介面,分別練習幾種常用的外部資料來源。

就和機器學習與R語言一樣,Excel也是出道很久的藝人,一直是蠻受歡迎男孩團體辦公室(Office)年紀最長的,在試算表界中有著崇高的地位,許多我們工程師需求中的使用者可以把Excel發揮的淋漓盡致讓人驚嘆,這幾年內建的BI工具更是讓人驚奇。

使用R語言時,和Excel合作演出的機會很高,今天來複習Excel載入!

常見的Excel有

  • Microsoft Excel:Office Open XML(.xlsx)和 Office 97-2003版本(.xls)
  • 逗號分隔值檔案(.csv)

如果想載入到R環境內成為Dataframe,我們可以使用GUI操作,GUI會自動在互動視窗中下R Script,但為了將來可能的自動化,我們先複習自己手作R Script載入檔案。

我們在資料夾MyR新增一支Day12.R

http://ithelp.ithome.com.tw/upload/images/20161212/20103434brdsFHIKLp.png

準備.xlsx及xls檔案

打開Excel,將以下字串(15-16 西班牙甲級足球聯賽排名)貼到工作表1

Id 	NAME 	win 	draw 	lose 	Goal 	Pts 
1 	Barcelona 	29 	4 	5 	112 	91 
2 	Real Madird 	28 	6 	4 	110 	90 
3 	Atletico Madrid 	28 	4 	6 	63 	88 
4 	Villarreal 	18 	10 	10 	44 	64 
5 	Sevilla 	14 	10 	14 	51 	52 
6 	Granada 	14 	10 	14 	51 	52 

http://ithelp.ithome.com.tw/upload/images/20161212/20103434FUKGulemcI.png

分別儲存為3種Excel格式的檔案(.xlsx .xls .csv)

http://ithelp.ithome.com.tw/upload/images/20161212/201034346iAPAhpYtg.png

載入逗號分隔值(CSV)


這種csv格式也是最常見的Excel資料集,我們直接使用內建的Data input功能就可以載入了!

在Day12.R中輸入程式碼

#逗號分隔值(CSV) 
#載入檔案 
csvdata <- read.csv("C:\\temp\\test\\rdata.csv") 
  
#抓取前5筆顯示 
head(csvdata, 5) 

執行結果
http://ithelp.ithome.com.tw/upload/images/20161212/20103434yIyCyLHdkl.png

成功載入!

載入office open xml或是舊版的excel檔案需要額外安裝兩個Package。

  • xlsx
  • gdata

載入Office Open XML(.xlsx)


在Day12.R中輸入程式碼

#Office Open XML(.xlsx) 
#安裝xlsx package 
install.packages("xlsx") 
any(grepl("xlsx", installed.packages())) 
#載入xlsx 
library("xlsx") 
 
xlsxdata <- read.xlsx("C:\\temp\\test\\rdata.xlsx", sheetIndex=1) 
 
#抓取前5筆顯示 
head(xlsxdata, 5) 

執行結果

http://ithelp.ithome.com.tw/upload/images/20161212/20103434RNS8DAgdky.png

成功載入!

載入Office 97 -2003版本(.xls)


在Day12.R中輸入程式碼

#Office 97 -2003版本(.xls)  
#安裝xls package 
install.packages("gdata") 
#載入xls 
library(gdata) 
#Read first sheet 
xlsdata <- read.xls("C:\\temp\\test\\rdata.xls", sheet = 1) 
  
#抓取前5筆顯示 
head(xlsdata, 5) 

執行結果
http://ithelp.ithome.com.tw/upload/images/20161212/20103434Nt49wEJxzh.png

成功載入!

載入資料量較多的.csv

試試RTVS的Sample資料集!
打開資料夾 MRS_and_Machine_Learning\Datasets,確認範例資料(航班延遲資訊)的路徑

http://ithelp.ithome.com.tw/upload/images/20161212/20103434TEjFki1pvi.png

在Day12.R中輸入程式碼

#載入檔案 
data <- read.csv("E:\\xxxx\\R\\RTVS-docs-master\\examples\\MRS_and_Machine_Learning\\Datasets\\Flight_Delays_Sample.csv")  
 
#抓取前10筆顯示 
head(data, 10) 

執行結果:

http://ithelp.ithome.com.tw/upload/images/20161212/20103434f2WJqFhNJH.png

成功載入!
航空公司(Carrier) DL : 達美航空

Excel除了作為外部資料載入的格式外,也經常用作整理清理後的資料儲存媒體,有機會可以參考R Manual Data Output連結。

https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html


據說迪士尼公主系列也會一起演出

http://ithelp.ithome.com.tw/upload/images/20161212/20103434BinLXpUjyT.jpg

昨天(2016.12.11)攝於Hong Kong Disneyland,china

*Venture outside your comfort zone. The rewards are worth it.
Rapunzel

長髮公主說,走出舒適圈吧!你會發現一切都是值得的。


上一篇
Day11 R語言資料集合操作
下一篇
Day13 R語言外部資料介面(json)
系列文
R語言與機器學習見面會30

尚未有邦友留言

立即登入留言