读取数据往往是进行数据分析的第一步,数据读取的方式很多,就R语言而言,常见的有几种:Load已经存好的RData,读取文本文件,读取excel文件,读取数据库文件,抓取网络数据。

读取RData

RData是过往存储好的数据格式,你在存储的时候,可以往一个RData中存入不止一个变量,再读取的时候,它们都会被一同载入进来。

下面我将变量b存储成为本地的A.rda文件,在存储的时候,你的名字其实可以随便取,甚至后缀名都可以随便取,其实你可以命名为各种各样的名字——.RData, .rdata, .RDA…什么都可以,但其实都没区别,因为只要是save函数存储的东西,结果都是一样的。

然后是载入数据:


使用load()函数就可以载入文件,要记得越大的文件,存储时间越长,载入时间也越长,所以最好不要轻易存取大文件。。。想好了再操作。

读取文本文件

文本文件是很常见的格式,从txt到各种都有,R提供了read.csvread.table这两个很常用的读取函数。

理论上read.csv是用来读取csv文件的,但其实这两个函数谁好用说不清的,你的csv文件或者txt文件难说有一些特殊的设置,比如tab分割啊,空格分隔啊一类的。我这些年的经验是,都试试,改改参数,总会能用的。

下面我们演示一下:

首先从百度云下载例子文件

然后根据下述代码读取文件


可以看到,理论上我们应该用read.table去读取,但是最后read.csv()读取成功了。我也不算什么高手,具体细节还不够清楚。经常读文件都是试着试着的就搞定了,有问题到话多用help(read.table)等来查询参数的意思。

 

总之,读取的命令都是:

A <- read.csv("file/path/XXX.file",head,sep)

其中head是告诉程序,你的txt文件有没有标题行,sep是告诉程序,用什么标准来区分每一个列。

读取Excel文件

个人觉得读取Excel文件最理想的办法,不就是把它存储成csv文件,然后直接用read.csv()读取吗?

不过有很多很多其他的直接从Excel读取数据的方法。比如xlsx包就是不错的选择:

首先我们把之前的那个文本存储成Excel,可以同样从这里下载例子文件,然后用命令就可以读取第一个sheet里边的所有信息。

记得要加encoding参数,不然读出来的都是乱码。

如果系统没有xlsx这个包的话可以看看上一节的内容去学习安装。

读取数据库文件

用R语言链接数据库是非常方便的,直接从数据库读取,写入数据,畅快淋漓。而且连接方法很简单很简单,这使得R语言再生产环境下有了一大功能,就是直接对接上数据库进行操作。

首先安装一些包:RPostgreSQL是用来对接PostgreSQL的,RMySQL是对接mySQL服务器的,其他还有各种各样其他的接口包。但是大致功能都差不多。下面是RMySQL包的一些教程:

连接方式超级简单,载入R包以后,一行就连上了:

library(RMySQL)
con <- dbConnect(MySQL(),host="localhost",dbname="databasename",user="root",password="password")

那个包提供了对于数据库的各种操作,增删改查都有。比如说查看数据库里面的表名:

dbListTables(con)

读取含中文的表格:

dbSendQuery(con,'SET NAMES utf8')

a<-dbReadTable(con,"blog_category")

print(a)

  id   name slug      description
1  1 测试用  111 我们到号网站描述

将数据写入mysql

t_demo<-data.frame(
  a=seq(1:10),
  b=letters[1:10],
  c=rnorm(10)
)
dbWriteTable(con, "t_demo", t_demo)

还可以查询数据库并导入到R里面

rs <- dbSendQuery(con, "SELECT * FROM iris")

class(rs)

d1 <- fetch(rs, n = 5)

d1
  row_names Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1         1          5.1         3.5          1.4         0.2  setosa
2         2          4.9         3.0          1.4         0.2  setosa
3         3          4.7         3.2          1.3         0.2  setosa
4         4          4.6         3.1          1.5         0.2  setosa
5         5          5.0         3.6          1.4         0.2  setosa

总而言之,R语言对接数据库的步骤就三步:1. 载入函数包,2:连接数据库,3:进行数据操作。