这一节介绍数据的读入和写入,要在R中做数据分析,首先需要将相关的数据读入,读入的方法多种多样,即使同一个文件,加载不同的包都有不同的读入方法,这里介绍一些比较常见的。
可以通过直接输入的方式输入数据,编辑的对象是数据框,如:
data1<-data.frame(1,2,2) fix(data1)这里的fix函数是打开表格,你就可以直接输入数据,打开的操作界面如下:
然后我们在第二行第一列直接输入一个数据3,然后点击关闭
然后再打开,可以看到数据3已经在里面了:
还有另一个很类似的是edit,这个是编辑变量的名称和类型粘贴板中读入
这个是表示已经将数据复制了,这时候是存储在内存里面,通过read.table中clipboard读入的,例如你复制了一个excel表格数据,然后运行如下代码:
data2<-read.table("clipboard", header = T,sep = '\t') head(data2)然后你在用head(data2)看一下数据的格式有没问题,现在Rstudio已经能够完美支持中文的了,三四年前读入中文还是乱码的。
read.table的功能很强大,具体在后面再详细介绍。
前面两种能读入的数据量级和效率是比较糟糕的,通常在分析的时候是读入外部文件和直接连接数据库去处理数据,下面介绍读入外部文件的,对于数据的外部文件格式有很多,下面只介绍比较常用的几种。
这个一种很常见的数据文件格式,很多API导出都会通过这种格式保存,或是部分人在处理数据的时候,会现在excel做数据的清理工作,然后保存为csv,再通过分析工具读入去做分析建模工作。
csv格式的读入很简单,如data3<-read.csv("D:\\data\\1.csv",header = T)这里需要特别注意,在window下面用R的,所以路径数\\。Linux下我没用过,所以不知道。
txt的文件也是用read.csv,如
data3<-read.table("D:\\data\\1.txt",header = F)read.table除了前面出现的header和sep参数外,还有其他很多的参数,这些参数可以帮助你准确导入你想要的数据,read.table使用格式是这样的:
read.table(file, header = FALSE, sep ="", quote = "\"'", dec = ".", 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)主要参数的意思如下:
读入xlsx需要下加载xlsx包,如果没有这个包的请自行安装,这个包的使用会依赖rJava和xlsxjars,所以这两个也是要安装的,还要有java的环境,用法如:
library(xlsx) data4<-read.xlsx("D:\\data\\file.xlsx",sheetIndex=1,header=TRUE)sheetIndex用来选择读取的sheet表格
在这里以连接MySQL为例子,我用的报R包是RMysQL,这个包使用比较方便,不用做其他设置,如果你用RODBC,那么你还需要做数据源配置,比较麻烦,RMySQL的用法是:
library(RMySQL) mycon<-dbConnect(MySQL(),dbname="world",username="root",password="123456",host="127.0.0.1",port=3306) #连接数据库,注意这里是连接到特定的库 dbListTables(mycon) #看看这个库有什么表 res<-dbSendQuery(mycon, "SELECT *FROM city") #查询出数据 data <-dbFetch(res) #加载到数据框这要数据就加载到数据框了。