添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

R语言数据分析(2)——数据读入与写入

R语言 Haran 7年前 (2017-12-01) 7305次浏览 0个评论

这一节介绍数据的读入和写入,要在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) #加载到数据框

这要数据就加载到数据框了。