既然了解了R语言的基本数据类型,那么如何将庞大的数据送入R语言进行处理呢?送入的数据又是如何在R语言中进行存储的呢?处理这些数据的方法又有那些呢?下面咱们一块儿来探讨一下。数据库
首先,数据输入最直接最直观的方法就是键盘输入,在上面几篇都已经讲到,利用c建立向量,利用matrix建立矩阵,利用data.frame建立数据框等,可是咱们处理的数据每每比较多,键盘输入在面对如此庞大的数据时显然不现实,固然你能够花费好几天来输入数据并且保证不出错除外,并且待处理的通常都存储在Excel,网页,数据库其余中介中,所以:如何大批量无差错高效率地读取数据就成为R语言首先要解决的问题。函数
第一:若是本身学习写代码,加载R语言中自己自带的数据包cars等,加载的方法跟其余包相同,具体代码以下:学习
> install.packages("car") > library(cars)
第二:读取外部数据通常用read.***( ),***表明要读取的文件类型,下面详细解释了每种类型的文件的读取:xml
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) read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...) read.csv2(file, header = TRUE, sep = ";", quote = "\"", dec = ",", fill = TRUE, comment.char = "", ...) read.delim(file, header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...) read.delim2(file, header = TRUE, sep = "\t", quote = "\"", dec = ",", fill = TRUE, comment.char = "", ...)
其中:blog
参数file:表明要读去的文件名以及文件路径,若是当前工做路径就是须要读取的文件的存储路径,那么能够直接写文件名,记得要用双引号括起来。那么如何设置工做路径呢?首先咱们查看当前的工做路径用getwd( )函数,设置工做路径的话用setwd(" 工做路径")函数,注意,在设置工做路径时,须要把路径中全部的 "\" 改为 “\\”。具体操做以下代码:ip
> getwd() #查看当前工做路径 [1] "E:/赵志博/R" > setwd("E:\赵志博") #错误的设置方式 Error: '\? is an unrecognized escape in character string starting ""E:\? > setwd("E:\\赵志博") #正确的设置方式 > getwd() #查看设置后的工做路径 [1] "E:/赵志博"
当工做路径设置完成后,即可以直接读取工做路径里面的文件而不须要加文件的存储位置。如代码所示,当前工做路径为"E:/赵志博",在该路径下建立了文件“123.txt”,能够直接读取文件,可是在“D:/”建立了新的文件“456.txt”,便不能直接读取,须要加上完整的文件路径,路径一样须要将"\" 改为 “\\”。get
mydata <- read.table("123.txt",sep = ',') > mydata V1 V2 V3 1 1 2 3 2 4 5 6 3 7 8 9 > mydataD <- read.table("456.txt",sep = ',') Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file '456.txt': No such file or directory > mydataD <- read.table("D:\\456.txt",sep = ',') > mydataD V1 V2 V3 1 1 2 3 2 4 5 6 3 7 8 9
每次都要设置路径,对有些场合来讲未免太过麻烦,所以R提供了一种能够直接选择文件位置的函数,read.***(file.choose()),例如读取txt数据:string
mydatachoose <- read.table(file.choose()) #自由选取数据来读取,可是file.choose( )的参数好像没有
参数header:主要肯定须要读取的文件是否本身已经设置了列名,默认值为FALSE。这个须要解释一下:上节咱们已经讲过data.frame类型,那么read.***( )的返回值也是数据框类型,天然是按列填充的数据框格式,所以列名就显得尤其重要,至关于Excel的表头部分,行号系统会根据1~N的顺序排好,固然也能够修改。it
参数sep:主要肯定须要读取的文件中,各个字符的分割方式,通常有空格分割,逗号分割等,肯定了分割方式,才能保证将数据读取为本身想要的样子。io
常见用的参数就是这些,其余的原理都差很少,若是有须要自行学习。
1.txt文件:mydata <- read.table( )
2.Excel格式数据:mydata <- read.xlsx( ),在使用这个函数以前,须要先安装xlsx包,安装方法跟其余包的安装方法一致。通常来讲,读取xlsx文件速度较慢,一般将Excel文件保存为csv格式,而后再进行读取 mydata <- read.csv( )
3.XML数据:读取XML数据前先要载入XML包,而后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))来读取
关于数据的读取就先介绍到这里,其余有用的着的再单独学习。