最近項目中運(yùn)用到了R讀取文件數(shù)據(jù),所以把相關(guān)好用的、經(jīng)過驗證的方法總結(jié)了一下,有效避免下次入坑。 1. R讀取txt文件 使用R 讀取txt 文件直接使用read.table() 方法進(jìn)行讀取即可,不需要加載額外的包。 read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))
注意,此處的na.strings = c("NA") 的意思是文件中的缺失數(shù)據(jù)都是用NA 進(jìn)行表示;在讀取文本文件時,默認(rèn)的分割符號為空格。具體的參數(shù)設(shè)置可參照如下: read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"), 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, allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

2. R讀取csv文件 使用R 讀取csv 文件和讀取txt 文件很類似,使用的是read.csv() 方法,兩者參數(shù)的使用大部分是一樣的。 read.csv("/home/slave/test.csv", header=T, na.strings=c("NA"))
在讀取csv文件時,分割符為“,” (這句基本是廢話,大家懂得);具體的參數(shù)設(shè)置可參考如下: read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)
3. R讀取xls和xlsx文件 讀取xls 和xlsx 有很多方法,但是這里面的很多方法也不是特別好用,例如RODBC 包中的讀取xls 方法就不太好用,有時還會出現(xiàn)各種各樣的問題。在進(jìn)行了一番入坑探索之后,找到了兩個相對好用的讀取xls 文件的包,下面我將分別進(jìn)行說明。 install.packages("gdata") read.xls("/home/slave/test.xls",sheet=1,na.strings=c("NA","#DIV/0!"))
其中sheet=1 參數(shù)的意思是讀取第一個sheet中的內(nèi)容;na.strings=c("NA","#DIV/0!") 將"NA" 和 "#DIV/0!" 都作為缺失數(shù)據(jù)表示,read.xls() 方法的具體參數(shù)設(shè)置可參考如下: read.xls(xls, sheet=1, verbose=FALSE, pattern, na.strings=c("NA","#DIV/0!"), ..., method=c("csv","tsv","tab"), perl="perl")

read.xls() 方法只是gdata 包中的一個方法,gdata 包中還有一些有用的方法,例如xls轉(zhuǎn)csv ,xls轉(zhuǎn)txt 等,在這里進(jìn)行一些列舉:
xls2csv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl") xls2tab(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl") xls2tsv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl") xls2sep(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., method=c("csv","tsv","tab"), perl="perl")
gdata 包有著很多的功能,但是它對其他的包的依賴很多,可能會出現(xiàn)各種不可預(yù)知的問題,下面介紹一個較少依賴的包。
install.packages("readxl") read_excel("/home/slave/test.xls",sheet=1,na="NA")
這塊需要注意的一點是na="NA" 和其他讀取時的格式略有不同,下面列出了具體的參數(shù)設(shè)置: read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)

注意:以上的兩個方法都可以對xls和xlsx 進(jìn)行讀取。 至此,已將我們在R中常用到的讀取文件數(shù)據(jù)方法以及介紹完畢,下面就讓我們一起動手實驗吧。^_^ 參考:
|