R语言的数据输入

既然了解了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"))来读取

关于数据的读取就先介绍到这里,其余有用的着的再单独学习。

相关文章
相关标签/搜索