使用R語言的時候,如果是少量資料,不妨使用c()或其他函數進行建立;但是對于大量資料,最好還是先通過其他更友善的軟體建立資料檔案,然後使用R讀入這個檔案。
前文說,.csv是非常好的資料檔案格式,跨平台支援非常好。我在Excel或者SPSS中建立的資料,隻要存為csv格式,就可以使用幾乎任何資料處理軟體對這些資料進行處理了。使用通用格式在多人合作、不同版本相容等常見行為中,優勢十分明顯。另外,之是以使用不同的資料處理軟體,第一,可以取長補短。比如有些工作SPSS很複雜的,可以用R語言幾行指令搞定。第二,可以進行軟體間處理結果對照,發現問題。
R語言中讀取外部檔案的最基本函數是read.table(),先介紹read.table(),然後再介紹專門用來讀csv的read.csv()。
敲入?read.table指令,就看到了關于資料輸入函數的說明。對read.table,使用格式是這樣的;
read.table(file, header = FALSE, sep =
"", quote = "\"'",
dec = ".", row.names,
col.names,
as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA,
nrows = -1,
skip = 0, check.names = TRUE, fill =
!blank.lines.skip,
strip.white = FALSE, blank.lines.skip =
TRUE,
comment.char = "#",
allowEscapes = FALSE, flush =
FALSE,
stringsAsFactors =
default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown",
text)
參數很多,最常用的也就幾個,重寫如下:
read.table(file, header = FALSE, sep =
"", quote = "\"'",
dec = ".", skip = 0,
strip.white = FALSE, blank.lines.skip =
TRUE,
comment.char = "#")
file表示要讀取的檔案。file可以是①絕對路徑或者相對路徑,但是一定要注意,因為在R語言中\是轉義符,是以路徑分隔符必須寫成\\,比如“C:\\myfile\\myfile.txt”。②可以使剪切闆的内容。③使用file.choose(),彈出對話框,讓你選擇檔案位置。強烈推薦使用第三種方法,免去了記憶和書寫檔案路徑的麻煩,特别是能夠避免因資料檔案位置移動帶來的錯誤!例如:read.table(file.choose(),...)。
header來确定資料檔案中第一行是不是标題。預設F,即認為資料檔案沒有标題,也即認為第一行就開始是資料了!例如:
姓名
年齡收入
小六
12 350
如果header=F,讀進來的第一行資料是“姓名
年齡收入”,header=T,讀進來的第一行是“小六 12 350”。
sep指定分隔符,預設是空格。quote是引号,預設就是雙引号。dec是小數點的表示,預設就是一個點。skip是确定是否跳過某些行。strip.white确定是否消除空白字元。blank.lines.skip确定是否跳過空白行。comment.char指定用于表示注釋的引導符号。
一般情況下,我們隻需要預設值就夠了。
下面是一個簡單的例子,本例子中,首行是标題而不是資料,使用\t進行分割而不是空格。讀取後的資料變量設為mydata。是以,可以寫出讀取方式為:
mydata
其中,T和TRUE的效果是一樣的,正如F和FALSE的效果是一樣的。
和read.table有所不同的,是read.csv的預設參數有别。注意看,header和sep的預設值。
read.csv(file, header = TRUE, sep = ",",
quote="\"", dec=".",
fill = TRUE,
comment.char="")
因為csv就是逗号分割的意思,當然sep必須是逗号。header也是預設有标題的。fill是預設填充的,即遇到行不相等的情況,空白域自動添加既定值。如果使用預設的設定,可以寫出:
mydata2
十分簡單。
對于讀取剪切闆的方式,不推薦使用。我們之是以使用讀取檔案,就是增加程式的可複用性,而讀剪切闆顯然是破壞了這種初衷的。是以,不到萬不得已,盡量使用檔案路徑或者檔案選擇的形式。
對于其他軟體的專用格式,是要使用擴充包的,比如常見的foreign包引入之後,可以讀Minitab,
S, SAS, SPSS, Stata, Systat,
dBase等軟體專用格式的資料檔案。這個操作此處就不談了。
最後,提醒大家一定要勤使用、多使用help。RStudio的布局,讓help檢視十分便捷。很多時候,忘了某個指令怎麼玩,隻要在指令視窗輸入“?某函數”,就可以邊看右側的提示,邊在左側指令欄繼續工作,隻需要左右晃動幾下眼睛而已,将不會再為指令單詞怎麼拼、共有哪些參數可選等問題而困擾!看圖:
原作者: Superconus|來自:
新浪部落格