最近项目中运用到了R读取文件数据,所以把相关好用的、经过验证的方法总结了一下,有效避免下次入坑。
1. R读取txt文件
使用R
读取txt
文件直接使用read.table()
方法进行读取即可,不需要加载额外的包。
read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))
- 1
注意,此处的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,
comment.char = "#",
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
文件的包,下面我将分别进行说明。
- gdata
install.packages("gdata")
library(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
包有着很多的功能,但是它对其他的包的依赖很多,可能会出现各种不可预知的问题,下面介绍一个较少依赖的包。
- readxl
install.packages("readxl")
library(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中常用到的读取文件数据方法以及介绍完毕,下面就让我们一起动手实验吧。^_^
参考:
- http://www.cnblogs.com/xianghang123/archive/2012/06/06/2538274.html
- https://cran.r-project.org/web/packages/gdata/index.html
- https://github.com/hadley/readxl
--------------------- 本文来自 华仔的逆袭 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tb3039450/article/details/52557200?utm_source=copy