读取数据往往是进行数据分析的第一步,数据读取的方式很多,就R语言而言,常见的有几种:Load已经存好的RData,读取文本文件,读取excel文件,读取数据库文件,抓取网络数据。
读取RData
RData是过往存储好的数据格式,你在存储的时候,可以往一个RData中存入不止一个变量,再读取的时候,它们都会被一同载入进来。
> A
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
> save(A,file="./A.rda")
下面我将A变量存储成为本地的A.rda
文件,在存储的时候,你的名字其实可以随便取,甚至后缀名都可以随便取,我这里用的是A.rda是因为我常用的Bioconductor网站将这个后缀规定为标准名称,其实你可以命名为各种各样的名字——.RData, .rdata, .RDA…什么都可以,但其实都没区别,因为只要是save函数存储的东西,结果都是一样的。
然后是载入数据:
> load("./A.rda")
> ls()
[1] "A"
> A
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
>
使用load()
函数就可以载入文件,要记得越大的文件,存储时间越长,载入时间也越长,所以最好不要轻易存取大文件。。。想好了再操作。
读取文本文件
文本文件是很常见的格式,从txt到各种都有,R提供了read.csv
和read.table
这两个很常用的读取函数。
理论上
read.csv
是用来读取csv文件的,但其实这两个函数谁好用说不清的,你的csv文件或者txt文件难说有一些特殊的设置,比如tab分割啊,空格分隔啊一类的。我这些年的经验是,都试试,改改参数,总会能用的。
下面我们演示一下:
首先我们复制了TOIBE网站上的计算机语言排名,粘贴到一个txt文档中:
然后我们分别尝试用read.csv()和read.table去读取它们:
可以看到,理论上我们应该用read.table去读取,但是最后read.csv()读取成功了。我也不算什么高手,具体细节还不够清楚。经常读文件都是试着试着的就搞定了。
总之,读取的命令都是:
A <- read.csv("file/path/XXX.file",head,sep)
其中head是告诉程序,你的txt文件有没有标题行,sep是告诉程序,用什么标准来区分每一个列。
读取Excel文件
个人觉得读取Excel文件最理想的办法,不就是把它存储成csv文件,然后直接用read.csv()读取吗?
不过有很多很多其他的直接从Excel读取数据的方法。比如gdata
包就是不错的选择:
首先我们把之前的那个文本存储成Excel,我用的是Office2016,名字叫做Toibe.xlsx,然后用命令就可以读取第一个sheet里边的所有信息。
> library(gdata)
> read.xls("./Toibe.xlsx",sheet=1,head=T)
Jun.17 Jun.16 Change Programming.Language Ratings Change.1
1 1 1 Java 14.49% -6.30%
2 2 2 C 6.85% -5.53%
3 <