最近项目中运用到了R读取文件数据,所以把相关好用的、经过验证的方法总结了一下,有效避免下次入坑。 1. R读取txt文件 使用R 读取txt 文件直接使用read.table() 方法进行读取即可,不需要加载额外的包。 read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))
注意,此处的na.strings = c("NA") 的意思是文件中的缺失数据都是用NA 进行表示;在读取文本文件时,默认的分割符号为空格。具体的参数设置可参照如下: 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() 方法,两者参数的使用大部分是一样的。 read.csv("/home/slave/test.csv", header=T, na.strings=c("NA"))
在读取csv文件时,分割符为“,” (这句基本是废话,大家懂得);具体的参数设置可参考如下: read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)
3. R读取xls和xlsx文件 读取xls 和xlsx 有很多方法,但是这里面的很多方法也不是特别好用,例如RODBC 包中的读取xls 方法就不太好用,有时还会出现各种各样的问题。在进行了一番入坑探索之后,找到了两个相对好用的读取xls 文件的包,下面我将分别进行说明。 install.packages("gdata") read.xls("/home/slave/test.xls",sheet=1,na.strings=c("NA","#DIV/0!"))
其中sheet=1 参数的意思是读取第一个sheet中的内容;na.strings=c("NA","#DIV/0!") 将"NA" 和 "#DIV/0!" 都作为缺失数据表示,read.xls() 方法的具体参数设置可参考如下: 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转csv ,xls转txt 等,在这里进行一些列举:
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 包有着很多的功能,但是它对其他的包的依赖很多,可能会出现各种不可预知的问题,下面介绍一个较少依赖的包。
install.packages("readxl") read_excel("/home/slave/test.xls",sheet=1,na="NA")
这块需要注意的一点是na="NA" 和其他读取时的格式略有不同,下面列出了具体的参数设置: read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)

注意:以上的两个方法都可以对xls和xlsx 进行读取。 至此,已将我们在R中常用到的读取文件数据方法以及介绍完毕,下面就让我们一起动手实验吧。^_^ 参考:
|