读取数据往往是进行数据分析的第一步,数据读取的方式很多,就R语言而言,常见的有几种:Load已经存好的RData,读取文本文件,读取excel文件,读取数据库文件,抓取网络数据。
读取RData
RData是过往存储好的数据格式,你在存储的时候,可以往一个RData中存入不止一个变量,再读取的时候,它们都会被一同载入进来。
下面我将变量b存储成为本地的A.rda
文件,在存储的时候,你的名字其实可以随便取,甚至后缀名都可以随便取,其实你可以命名为各种各样的名字——.RData, .rdata, .RDA…什么都可以,但其实都没区别,因为只要是save函数存储的东西,结果都是一样的。
然后是载入数据:
使用load()
函数就可以载入文件,要记得越大的文件,存储时间越长,载入时间也越长,所以最好不要轻易存取大文件。。。想好了再操作。
读取文本文件
文本文件是很常见的格式,从txt到各种都有,R提供了read.csv
和read.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:进行数据操作。
鹃儿
1楼 - 6 年,6 月 之前
总而言之,R语言对接数据库的步骤就散步:1. 载入函数包,2:连接数据库,3:进行数据操作。