【IT168 编译】本文是《R编程语言》中一个系列的第二部分。在第一部分中,我们探索如何使用R语言进行数据可视化。第二部分将探讨如何在R语言中获取数据并进行分析。
如今,想要购买一部手机已成为一件非常具有挑战性的事,这点很好理解。因为要在如此多的款型和品牌中选择并确定符合最终需求的那款手机,需要进行深入的产品研究并理解产品的功能。有趣的是,一些产品评论和价格比较,可供用户自由填写和选择,以帮助消费者作出正确的选择。而实际积累的数据也为消费者对产品决策和最终决定是否购买方面也起了重要作用。作为消费者,寻找合适的数据是一个十分复杂的过程。这样一来,R语言就有了用武之地。使用R语言进行编程,开发者可以用一个脚本快速绘制统计出适合自己的分析。下面,让我们看看R编程的一些特性和用法。
用R语言进行数据处理的不同方法:
R可以从以下几个方面读取数据:
·电子数据表
·Excel表
·数据库
·图片
·文本文件
·其他特殊格式
导入数据
不论是本地数据还是网上数据,使用R编程都将能够成功地导入不同格式的数据。
从文件中读取数据
理想情况下,数据是可以储存在文件系统中的。这些数据必须可读或写,用以识别当前目录中储存的文件。
·目录设置
首当其冲的就是设置工作目录。
使用命令getwd()来确定目录(文件夹)
在linux pc输出显示的路径如下:
> getwd()
[1] "/home/test"
在Windows上描述为:
c:\data\test
设置数据文件的保存目录,使用命令setwd(“路径”),路径数据文件所在的目录和子目录。例如,如果数据在文件temp.txt且此文件在文件夹/home/test/example/,那么在linux上表示为:
setwd("/home/test/example/")
在Windows上,它将被表示为:
setwd("C: \mydata\test")
这里,有必要知道文件所保存的文件夹地址。
·读取文本文件
包含在文本文件的数据可以在R会话时使用扫描命令读取。
记住使用选项what= " "扫描命令,这表明输入的字符将带有数据类型属性。
对于这个session,我已经创建了textsample.txtfile文件,它可以在R会话中读取。
> fdata<- scan("textsample.txt",what="")
现在,fdata将从文本文件中获取数据。
让我们先来回顾一些head(fdata)条目命令:
> head(fdata)
[1] "this" "is" "a" "sample" "file" "generated"
使用tolower将字符串转换成小写字母。
> fdata<-tolower(fdata)
文件中许多都是单独存储,其中存在一些重复词汇。
计算词的使用频率
> ft<-table(fdata)
查看ft的饼图情况使用命令:
> pie(ft)
从上面的图表可以看出,“file”和“the”的使用频率最高。
通过max命令可以很容易发现在英国《金融时报》使用频率最大的单词。
> max(ft)
[1] 4
查看该命令的输出:
> head(ft)
fdata
a be by can character command
1 3 1 2 1 1
图中点绘处显示单词在频率图对应的位置:
> dotchart(ft)
·读取文件数据的命令
大家都知道,一些最常见的数据文件都是csv和xls格式文件。csv文件用逗号分隔值,xls是一个excel文件扩展名。
一些最常见的数据文件格式,可以通过read.csv和read.table命令处理:
> read.csv("test.csv",header=TRUE)
1 Status Age V1 V2 V3 V4
2 P 23646 45190 50333 55166 56271
3 CC 26174 35535 38227 37911 41184
4 CC 27723 25691 25712 26144 26398
5 CC 27193 30949 29693 29754 30772
6 CC 24370 50542 51966 54341 54273
7 CC 28359 58591 58803 59435 61292
8 CC 25136 45801 45389 47197 47126
> read.table("test.csv",header=TRUE)
Status Age V1 V2 V3 V4
1 P 23646 45190 50333 55166 56271
2 CC 26174 35535 38227 37911 41184
3 CC 27723 25691 25712 26144 26398
4 CC 27193 30949 29693 29754 30772
5 CC 24370 50542 51966 54341 54273
6 CC 28359 58591 58803 59435 61292
7 CC 25136 45801 45389 47197 47126
·直接从网上获取数据
大家可以直接从网上读取数据。这些数据可通过网站链接获取,或通过R记忆URL直接获得数据。网络上的数据设置可登录http://lib.statNaNu.edu/datasets/csb/ch3a.dat。输入read.csv或read.table命令直接读取数据。
data1<-read.table( "http://lib.statNaNu.edu/datasets/csb/ch3a.dat")
> head(data1)
V1 V2 V3 V4 V5
1 07/08/91 47.33 52.82 19.58 17.78
2 07/09/91 42.58 53.25 9.42 6.06
3 07/10/91 59.55 56.32 19.83 14.81
4 07/11/91 52.92 50.06 15.08 9.75
5 07/12/91 55.25 59.50 28.75 27.21
6 07/13/91 54.75 56.80 27.83 20.84
data2<-read.csv( "http://lib.statNaNu.edu/datasets/csb/ch3a.dat")
> head(data2)
X07.08.91....47.33....52.82....19.58....17.78
1 07/09/91 42.58 53.25 9.42 6.06
2 07/10/91 59.55 56.32 19.83 14.81
3 07/11/91 52.92 50.06 15.08 9.75
4 07/12/91 55.25 59.50 28.75 27.21
5 07/13/91 54.75 56.80 27.83 20.84
6 07/14/91 35.33 40.88 11.83 15.65
data1以及data2是持有相同的文件不同格式的两个数据对象。
Reading Spreadsheets
·阅读电子表格
阅读电子表格数据,我们需要安装gdata库。
> install.packages("gdata")
> library(gdata)
读取这个包的数据,可使用新命令read.xls。
The data file test.xls can be read with read.xls(“test.xls”).
数据文件test.xls可输入命令read.xls xls(“test.xls”)读取。
Fill Spread Sheet Type Data Through the Editor in R
通过编辑R填补传播表类型数据
x<-edit(as.data.frame(NULL))
R中的数据集
可以使用显示R中的数据集的命令data()将可用数据集置入R中。
data(Airpassengers)
查看数据描述,使用命令:
help(AirPassengers)
查看实际数据,使用head命令:
> head(AirPassengers)
[1] 112 118 132 129 121 135