讀存取 R軟體的資料格式:rda 檔 載入 R 資料檔load("le.rda")
將物件儲存 rdata檔: save.image("le.rda")
使用資料框架函式 read.table() 或 read. sv() 讀入或輸入外部資料檔案, 最容易。 直接讀取整個 外部檔案進入資料框架, 外部檔案常常要求有特定的格式, 例如
1. ASCII 形式的檔案,多數檔編輯器, 資料庫, 試算表等軟體可以存取
2. 第一的列 (行) (line, row) 可以有該資料各個變數的變數名稱 (variablenames) 或是 â列的 名字 ( olumnname)
3. 其餘的列(line, row), 是各個變數的值.
4. 資料之間是空格分開, 或其他特定符號 (逗號,Tab) 分隔.
5. 資料是文字類型, 通常以雙引號" 形式
6. 以 â,â分開變數值的 ASCII 形式檔案, 一般成為 omma-separated-variableformat, 檔案名 通常以 . sv 作為延伸檔名,
7. 第一欄 ( olumn) 有時候是 â列標籤 (rowlabel)或是 â列的名字 (rowname) 讀取資料檔技巧:
1. 在你要讀入 R語言前務必先看過資料檔格式,再決定用哪種命令函數讀取資料檔。
2. 注意資料是否有 「欄位名稱」, 分隔符號是什麼?
3. 要注意輸入的符號是前斜線"
/
還是後斜線 "\
4. 在你的作業系統中資料可否利用"複製 Ctrl
+
C,"張貼Ctrl+
V 功能,如果可以的話,用s an() 指令是個不錯的選擇 。
資料或分析結果,輸出至外部檔案, 供其他軟體使用, 主要 使用資料框架函式 write.table(),相對 應read.table(),輸出資料(資料框架或矩陣)至外部資料檔案,最容易. 對大型資料,可以使用MASS 套件中的 write.matrix()會較有效率.
R內建的鳶尾花(iris) 資料集是非常著名的生物資訊資料集之一,取自美國加州大學歐文分校的機 械學習資料庫 http://ar hive.i s.u i.edu/ml/datasets/Iris, 資料的筆數為150筆, 共有五個欄位:
1. 花萼長度 (Sepal Length): 計算單位是公分。
2. 花萼寬度 (Sepal Width): 計算單位是公分。
3. 花瓣長度 (Petal Length): 計算單位是公分。
4. 花瓣寬度 (Petal Width): 計算單位是公分。
5. 類別 (Class): 可分為Setosa,Versi olor和 Virgini a三個品種。
順伯的窩 第 頁 共 頁
讀取ASCII 表格形式的資料: 利用 read.table 讀檔,write.table 為輸出檔案
read.table(file, header = TRUE, sep = ",", quote = "\"", de = ".",
fill = TRUE, omment. har = "", ...)# 讀取 txt,data資料檔
write.table(x, "myNewData.txt",append=FAL SE, quote=FALSE, sep="\t")#匯出txt 資料檔
write.table() 可以匯出資料成為 txt 或是 sv 格式到指定的目錄
read.table適合讀取表格資料,但較不適合讀取大型矩陣資料檔,欲讀取大量矩陣資料可用指令
"s an 取代。
•
le= 資料名稱•
header= 資料開頭是否有變數名稱, 預設值=TRUE•
sep = 資料分隔符號, 如果是sep=" ", 表示分隔為空白鍵或 Tab("\t'') 做區隔•
quote = 資料中的字串符號,quote=" "代表關閉此功能•
de = 資料是否含小數點或分號。â.â為實數的小數點。•
ll= 每一列資料長度是否不同, 預設值=TRUE•
omment. har = 預設值" "代表關閉 omment•
row.names = NULL 表示第一欄無列標籤•
append= 首列header line預設值為 False資料檔變數之間為 " 空白分隔或 Tab分隔的 le.txt 檔
sepal_length sepal_width petal_length petal_width iris 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa
資料檔變數之間為 ", 分隔的 le.txt 或 le. sv 檔
sepal length,sepal width,petal length,petal width,iris 5.1,3.5,1.4,0.2,Iris-setosa
4.9,3,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5,3.6,1.4,0.2,Iris-setosa
順伯的窩 第 頁 共 頁
read.table("d:/math work/data/iris.txt",sep=" ",he ader =T,s kip= 0) #空白
read.table("d:/math work/data/iris_tab.txt",s ep=" \t", head er=T ,ski p=0 )#Ta b 隔
read.table("d:/math work/data/iris_ sv.txt",s ep=" ,",h eade r=T, skip =0) #逗號
read.table("d:/math work/data/iris.data",sep= ",") #逗號
write.table(x,"d:/myNewDa ta.t xt", appe nd=F ALSE ,quo te=F ALSE ,sep ="," )#匯出資料
write.table(x,"myNewData. sv" ,sep ="," ,row .nam es = FALSE) # 匯出 sv 資料檔 讀取檔案較大的 sv 資料: 若格式檔為. sv, 變數間以sep=", 做區隔則用指令read. sv() 來讀取資
料
read. sv(file,header = TRUE, sep = ",", quote = "\"",de = ".",
fill = TRUE, omment. har = "", ...)#讀取 le. sv 資料檔
write. sv(x,"myNewData. s v",r ow.n ames = FALSE)# 匯出 sv 資料檔
相當於 write.table(x,"myNewData. s v",s ep=" ,",r ow.n ames = FALSE)# 匯出 sv 資 料檔
執行write. sv() 時,不需要指定分隔的符號,在重新讀取時,也不需要刻意指定,仍然可以匯入
正確的資料。
read. sv("d:/math work/data/iris. sv",header =T,s kip= 0)
讀取向量資料檔 s an(): s an() 可以讀取向量型態的外部資料, 但是無法讀取表格, 是一個處理簡 單資料的指令。 適合矩陣形式資料(同屬性)
s an(file="",what=double( ),nm ax=- 1,n= -1,s ep=" ",de =". ",sk ip=0 , om men t. h ar=" ",.. .)
tips: 若可以將要輸入的資料 Ctrl+C 複製好, 則在 RStudio 作業平台輸入 >x=s an() 再
Crtl+V 貼上資料即可。
•
le: 資料檔案位址路徑名稱•
what =double() 資料兩倍精密度•
nmax 設定最多讀入多少個數值,-1 表無限制。•
n 設定讀入多少個數值。-1表無限制。•
sep = 資料之間分隔符號, 如果是 sep=" ", 表示分隔為空白鍵或 Tab("\t'') 做區隔。預設為空格或換行符號。
•
de = 資料是否含小數點或分號。•
skip= 前幾列資料不讀入。•
omment. har = 預設值" "代表關閉 omment順伯的窩 第 頁 共 頁
資料檔 ex1.txt 如右:
Error in s an("d:/math work/data/ex1.txt", skip = 0) :
s an() expe ted 'a real', got '年齡'
x=s an("d:/math work/data/ex1.txt",sep=",", skip =1)
x=s an("d:/math work/data/ex1",sep="\t",ski p=1)
順伯的窩 第 頁 共 頁
下載安裝套件: install.pa kages("pa kage")
R 軟體安裝後, 安裝目錄會有基本套件 (Pa kages)。 若欲使用非基本套件中的某函數功能, 必 須先在程式中使用 library()函數來載入套件。 基本套件 (無須載入) 有:
1. datasets: 基本範例資料檔 (Iris)
2. grDevi xs: 圖形裝置套件
3. graphi s基本圖形套件
4. grid:grid圖形版面設定套件
5. method:R 物件使用方法及類別
6. stats: 統計函數套件
7. stats4: 使用 S4 lass 物件導向方式所寫的統計套件
8. t ltk: 與 T l/Tk 圖形介面語言溝通的工具套件
9. tools: 管理與程式開發有關的工具套件
10. utils: 其他常用工具函數
在 Windows GUI圖形介面中, 可從
p
程式套件y ⇒ p
安裝程式套件y
選單執行套件安裝。R軟體會要求選擇儲存 R 軟體的 CRAN 鏡射網站位置, "Taiwan(Taipeh), 再選擇自己要安裝 的套件名稱,R 軟體即會從 CRAN 鏡射網站抓取相關的套件安裝在電腦之中。 我們也可以自行 從作業系統中安裝非基本套件, 語法為install.pa kages("pa kage") 只需安裝一次就行。
有用的套件 (Pa kage)
1. gdata 套件:讀存取外部資料檔工具
2. splines 套件: 回歸分析線性函數及類別功能
3. mosai 套件:統計與數學工具
4. rootSolve 套件:求方程式近似根, 微分方程式
5. dplyr套件: 處理數據資料時, 基本數據套件。 特別適用於按類別資料數據。
6. ggplot2: 用於製作漂亮圖形的著名包裝。 ggplot2允許您使用圖形語法來構建分層的, 可
自定義的繪圖。
7. ggmap: 直接從 Google 地圖下載街道地圖, 並將其用作 ggplots 中的背景。(For Spatial
data)
8. MLR:Python 在 R 之前飆升的最大原因之一是它的機器學習重點庫 (如 s ikit-learn),
然後 MLR 包, 它允許我們執行各種機器學習任務。 MLR 包括我們在項目中使用的所有 流行的機器學習算法。
9.
· · ·
查詢已載入套件:library() 查看自己電腦內已安裝哪些套件
載入套件: 在 R 軟體中每次執行非基本安裝套件 (Pa kage) 時需載入, 使用 library("pa kage") 來 載入套件
讀取Ex el 檔: 最穩定的辦法還是轉成 sv檔,利用read.table()讀入資料。 要讀取Mi rosoftEx el 資料首先必須載入套件 "gdata。
install.pa kages("gdata",repos="http:// ran.us.r-proje t.org")
順伯的窩 第 頁 共 頁
library(gdata);read.xls("ex elle.xls",sheet = 1,header =TRUE)
若資料儲存為 Mi rosoft Ex el檔
>install.pa kages("gdata" ,rep os=" http :// ran. us.r -pro je t .org ") #首次 安裝套件後, 重新執行 R-studio
>library(gdata)
>x=read.xls("d:/math work/data/Iris.xls") # 2007 年後 Mi rosoft Ex el 檔 則為 "iris.xlsx''
> x
sepal.length sepal.width petal.length petal.width iris
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
4 4.6 3.1 1.5 0.2 Iris-setosa
5 5.0 3.6 1.4 0.2 Iris-setosa
注意資料儲存之編碼為 Big5、Utf-8、ANCI 或其它。 重新儲存資料檔、 編碼為Utf-8。 使用合適 的編碼參數: read.table(âdata.txtâ, en oding="an i") read.table("test.utf8", sep = ",", header=TRUE, leEn oding ="UTF-8")
library(): 查詢電腦已安裝可用的套件名稱
data(): 查詢可用的資料檔名稱
R語言基本安裝後包含幾個基本的資料檔可供利用,"AirPassengers," ars,"faithful,"iris,"trees
,
· · ·
等。 如欲進一步查詢資料檔的說明可用 help(dataname) 指令查看。>data(iris) # 引入"iris 資料檔
>help(iris) # 查看 "iris 資料檔的說明 (資料來源, 格式,變數,... 等)
1.4練習題
1. 通常的數據讀取函數之一採用以下參數:header,sep,de ,row.names,skip,nrows。 解釋他們的目 的。
2. 讀入資料檔 "possum. sv ,並查看有哪些變數? 如何查看 "sex 為 f 的"totlngth 變數資料
3. 比較指令函數 s an()與 read.table()兩者差異?
順伯的窩 第 頁 共 頁
4. 說明如何從 Ex el 電子檔表格輸入數據資料?
5. 從網址 http://www.biostatisti ien .eu/ spri ngeR /Wei ght_ birt h.xl s 下載資料檔
"Weight_birth.xls`` 然後讀入 R軟體,並命名為 x 物件資料。
順伯的窩 第 頁 共 頁