用R做数据分析Word下载.docx

上传人:b****5 文档编号:21770657 上传时间:2023-02-01 格式:DOCX 页数:22 大小:334.69KB
下载 相关 举报
用R做数据分析Word下载.docx_第1页
第1页 / 共22页
用R做数据分析Word下载.docx_第2页
第2页 / 共22页
用R做数据分析Word下载.docx_第3页
第3页 / 共22页
用R做数据分析Word下载.docx_第4页
第4页 / 共22页
用R做数据分析Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

用R做数据分析Word下载.docx

《用R做数据分析Word下载.docx》由会员分享,可在线阅读,更多相关《用R做数据分析Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

用R做数据分析Word下载.docx

R不仅免费还有各种各样的的功能包资源。

从某种程度上讲,任何你想要的功能应该都可以找到对应的包,只是说是否完全满足,对于一些算法研究人员来说,可以在原来的代码的基础进行借鉴。

这也许就是为什么R最开始主要用到高校或者学术领域(当然和国外学者、专家这种自由、开放的环境或者意识有很关系,这也许就是为什么许多开源软件都是国外出来,很少看到国内的大公司有什么好的东西开源)。

很多行业人士都说R是未来的“王道”,就像unix的发展过程一样。

我觉得未来一定有属于R的一片天空,而且这种天空可以说是接近无限。

所以,对于有志于从事数据挖掘、数据分析这个行业的朋友来说,掌握R是也许会成为未来的必备技能(就像现在数据分析师大多要求会:

SQL)。

最后,我对R语言的理解与总结可以概括为一句话:

“开源、二次加工、分享精神”。

R包介绍

R语言的使用,很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对于R的插件,不同的插件满足不同的需求

一、R语言包的安装

1、通过选择菜单:

程序包->

安装程序包->

在弹出的对话框中,选择你要安装的包,然后确定。

2、使用命令

install.packages("

package_name"

"

dir"

package_name:

是指定要安装的包名,请注意大小写。

dir:

包安装的路径。

默认情况下是安装在..\library文件夹中的。

可以通过本参数来进行修改,来选择安装的文件夹。

例如:

mvtnorm安装到D:

/DM/r/R-2.15.2/library/目标下install.packages("

mvtnorm"

D:

/DM/r/R-2.15.2/library/"

3、本地来安装

如果你已经下载的相应的包的压缩文件,则可以在本地来进行安装。

请注意在windows、unix、macOS操作系统下安装文件的后缀名是不一样的:

1)linux环境编译运行:

tar.gz文件

2)windows环境编译运行:

.zip文件

3)MacOSg环境编译运行:

.tgz文件

注:

包安装好后,并不可以直接使用,如果在使用包中相关的函数,必须每次使用前包加载到内存中。

通过library(package_name)来完成。

二、加载包

包安装后,如果要使用包的功能。

必须先把包加载到内存中(默认情况下,R启动后默认加载基本包),加载包命令:

Library(“包名”)

Require(“包名”)

三、查看包的相关信息

1、查看包帮忙

library(help=package_name)

主要内容包括:

包名、作者、版本、更新时间、功能描述、开源协议、存储位置、主要的函数,例如:

library(help=igraph)

2、查看当前环境哪些包加载

find.package()或者 

.path.package()

默认情况下安装7个包(本系列文章使用的R的版:

2.15.2)

3、移除包出内存

detach()

4、把其它包的数据加载到内存中

data(dsname,package="

pkgname"

5、查看这个包里的包有数据

data(package="

包名"

6、列出所有安装的包

library()

四、R包的分类

1、根据包的功能,分成不同的类:

 

2、截止到2013年3月6号,CRAN上一共收录的:

4338个包。

3、不同开源协议的包的分布如下:

(相关查看代码:

#读取CRAN上包的相关信息

a<

-available.packages(contrib.url("

"

"

source"

))

#查看CRAN上当前包的个数

nrow(a)

#各种开源协议的包的分布个数

sort(table(gsub("

.*"

a[,"

License"

])), 

decreasing=T)

R软件初识数据分析

R软件下载地址:

1.用来制作散点图非常便捷。

plot(纵坐标变量~横坐标变量,data=数据集名称)

library(lattice)

xyplot(纵坐标变量~横坐标变量|属性拥有者,data=数据集名称)。

多个散点图。

2.数据存储成CSV格式的会更容易处理

3.R能用正则表达式来处理数据模式!

NewName<

sub("

\\(.* 

\\)"

Test$Name)

\\( 

表示左括号,告诉R这不是R表达式

句点表示任何字符

*星号表示任何数值的前字符

\\)表示右括号

4.读写文件语句

INPUT<

-read.csv("

 

.csv"

header=TRUE) 

读取一个.csv格式的文件

head(INPUT,n=?

) 

查看开头数据中开头?

write.csv(INPUT,file="

OUTPUT.csv"

将结果写入到csv格式的文件

5.R区分大小写,连TRUE都不能用小写.

向量

在本系列文章中,接下将分别介绍R语言的几种数据对象:

向量、矩阵、数据框与列表、其它特殊对象;

请大家在学习R语言的时候永远记住一个概念,R语言所有内容都是对象;

一、向量基本概念

R语言中最为核心的构成之一

1、向量构成的基本元素为:

数值(numeric)、字符(character)、逻辑值(logical)、复数型(complex);

2、向量不需要定义类型,可直接赋值:

1)生成一个空向量;

x<

-c();

2)给向量赋值。

-c(0,1,2,3);

3、向量的元素下标取值是以1开始,这点请刚开始接触R的同学注意。

要前例中取x向量中值为1,则为x[2]

4、如果一个向量中有一个字符,则该向量的类型会变成字符;

如果逻辑变量与数值在一起,则为转换成数值。

TRUE转变成1andFALSE转变成0.

2、在R语言中没有单一的整数、单一字符的概念

X<

-2;

-'

a'

R都是当作向量来处理,只是这个向量只包括单一值。

3、给向量各元素命名:

names(x)

Demo_3<

-1:

3

names(Demo_3)<

-c("

a"

b"

ab"

二、几种特殊向量的生成

1、生成系列seq()

1)seq(length=,from=,to=)

Length:

指定生成个数

From:

是指开始生成的点

To:

截止点

2)如果不指定,则默认条件下:

seq(N1,N2,BY=)

N1:

开始位置

N2:

截止位置

BY=指定间隔

2、rep(P,N)重复生成P值N次

三、向量运算

1、取子向量

通过下标:

取某个元素:

x[2];

(如果X包括名称,注意:

x[2]与x[[2]]的区别;

取某中几个:

x[c(1,2,0)]

取某个/几个元素,利用-:

x[-n]

2、向量排序;

sort();

输出排序后的结果;

order();

输出排序后的各个向量位置;

a<

-c(3,9,0,12,19)

sort(a);

order();

3、循环。

如果二个向量进行运算过程中,二个向量不相同,则R对长度小的向量自动补充值,直到长度等于大的向量。

Demo_5<

3;

Demo_6<

-2:

5;

Demo_7=Demo_6+Demo_5;

7;

(这也是很多人学习R语言的时候很难理解的地方,为什么会有这种机制)

vectorizedoperation(向量化运算)

1)、如果有一个是向量,是则结果都是向量形式;

2)、进行向量运算;

判断向量是否长度相等,如果长度不相等,则把短向量长度从头开始循环补充值,到与长向量的长度相等(所以二个长度的相关必须是整数倍);

矩阵

矩阵的创建

在R中用函数matrix()来创建一个矩阵,使用该函数时需要输入必要的参数值。

matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)

1. 

data向量元素列表

2. 

nrow行数

3. 

ncol列数

4. 

byrow矩阵是按列优先的方式进行排序,先列后行。

byrow项控制排列元素时优先级按行。

1) 

matrix(c(1,2,3,4,5,6),nrow=2,byrow=T)

5. 

Dimnames(Row_name,Col_name)给定行和列的名称,如果不需要给行或者列命名,则以NULL代替。

给下面的矩阵列命令

2)Demo_1<

-matrix(rnorm(15)*10,5,3,dimnames=list(NULL,c('

A'

'

B'

C'

)))

矩阵的运算

1、R矩阵查看矩阵的列/行相关信息

#查看矩阵列名colnames(Demo_1)

#查看矩阵行名rownames(Demo_1)

#给矩阵的行命名rownames(Demo_1)<

-c('

r1'

r2'

r3'

r4'

r5'

#矩阵的维度 

dim(Demo_1)

#返回与矩阵相同的列与行 

row()/col()函数将返回一个与某矩阵有相同维数的矩阵

#返回矩阵行数与列数nrow()返回行数

ncol()返回列数

2、R的子矩阵

#取矩阵中某个元素值,第二行第三列的值:

Demo_1[2,3]

#取矩阵中的某列,取矩阵的第一列 

Demo_1[,1]

#取矩阵中的某行,取矩阵的第一行 

Demo_1[1,]

#取某列大于某个值,取第二列大于3 

Demo_1[Demo_1[,2]>

3,]

3、R矩阵的基本运算

#矩阵加&

Demo_2=Demo_3=matrix(1:

20,nrow=5,ncol=4)

#矩阵相乘

Demo_4=matrix(1:

20,nrow=4,ncol=5)

Demo_5=matrix(1:

Demo_4%*%Demo_5

4、增加行与列

-matrix(,4,2)

Demo_6[c(1,3),]<

-matrix(c(1,2,3,4))

Demo_6

5、R矩阵的转置

t(Demo_1)

6、矩阵其它运算

#取对角元素diag()

#各行汇总值rowSums()

#各行的平均值rowMeans()

#各位的汇总值colSums()

#各列的平均值colMeans()

数据框

前面几篇文章对R语言、R包以及R向量与矩阵等对象做了简单介绍,本篇继续介绍R数据框的相关内容。

数据框的创建

通过data.frame函数来创建数据框,该函数包含的主要参数为:

data.frame(...,row.names=NULL,check.rows=FALSE,check.names=TRUE,

stringsAsFactors=default.stringsAsFactors())

创建一个数据框

Demo_1<

-data.frame(name=c('

lucy'

alice'

lei'

),

heigh=c(178,156,188),

sex=c('

F'

M'

score=c(200,210,198))

#包括一个缺少值的数据框

Demo_2<

NA),

score=c(200,210,198),

stringsAsFactors=F)

默认情况下,name与sex都是factor类型,如果要将某转化成字符类型,则使用选项:

stringsAsFactors=F

数据框特别点

1、可以包含不同类型的变量;

而在矩阵中只能是同一种类型,例如:

不能出现字符与数值二种类型;

所以可以把数据框理解为各列可为不同类型的向量组合。

2、各列的长度要求一致。

如果长度不一,则会报错。

3、如果你对数据库比较熟悉,你可以把数据框理解为数据库中的表。

数据框基本操作

1、查看数据框信息

#查看类型 

class(Demo_1)

#查看某列的类型 

class(Demo_1$sex)

#查看数据框长度 

length(Demo_1)

#数据框各项名称 

names(Demo_1)

#数据框信息总结,对字符类/因子类数据,给出相应的频数统计;

给数值型数据给出5个主要的指标。

summary(Demo_1)

#对数据框进行去重

unique(Demo_1)

#取数据框中重复的行 

Demo_1[duplicated(Demo_1),]

2、取数据框中的某个元素

Demo_1[i,j]指第i行第j列的数据;

3、取数据框中一列与多列

#取某列,可以通过列标或者名称

Demo_1$sex

Demo_1[,3]

#取多行,例如取1,2,4列

Demo_1[,-3]

Demo_1[,c(1,2,4)]

4、取数据框中的一行与多行

#取某行,可以通过行标或者名称,例如:

取数据框的第一行

Demo_1[1,]

#取多行,例如:

取数据框的第一与第二行

5、判断数据框各行是否完整

complete.cases(Demo_2)

#选择非缺失值的数据 

Demo_1[complete.cases(Demo_2),]

6、增加列

#给Demo_1增加一列 

Demo_1$score2<

-c(12,13,23)

-cbind(Demo_1,score2=c(12,13,23))

7、增加行

#合并某二个数据框的二列 

Demo_3<

-rbind(Demo_1[,c(1,2)],Demo_2[,c(1,2)])

列表

通过list函数来创建列表,例如,创建一个包含三个列的列表,请注意与R语言中的列表显示有什么不一样:

1.创建列表demo_1

2、创建数据框demo_1_1

列表对每个列显示都会单独以一行的形式存在;

数据框则是以表(或者是矩阵)的形式显示;

所以根据数据输出的格式可以判断是列表还是数据框;

创建一个示例列

-list(name=c('

#包括一个缺少值的列表

-list.frame(name=c('

列表特点

列表包含所有列表的特点。

列表与列表的最大区别在于,列表的各列的长度是可以不一致的。

), 

heigh=c(178,156), 

sex='

列表基本操作

1.查看列表信息

#查看列表长度即就是列的个数 

#列表各项名称 

names(Demo_1) 

2.取列表中的某列或者某列元素

#取列表的第二列

Demo_2[2]

Demo_2$heigh

#取列表的某二列的元素

Demo_2[[2]]

Demo_2[[2]]与Demo_2[2]二者输出的区别在于,前者是输出向量,后者输出是列表;

我们详细来看下面的内容:

3.取向量中的某个元素

Demo_2[[N]][M]取:

N列中的第M个元素;

4.判断列表各行是否完整

#选择非缺失值的数据

Demo_3[complete.cases(Demo_3)

5.增加列

#给Demo_1增加一列

Demo_1$score2<

-cbind(Demo_1,score2=c(12,13,23)

6.其它操作

#删除一个值

-NULL

#把列表转为向量:

unlist()

#移除列表中的元素:

list[[N]]<

-NULL

数据的输入与输出之Scan函数

前面系列文章,介绍了R语言中的几种数据格式;

其它特殊的数据格式将在后续的文章中介绍,接下来的几篇文章,将讨论如何从外部中读入数据或者将其它格式的数据读入到R环境中;

scan()函数

scan(file="

what=double(0),nmax=-1,n=-1,sep="

quote=if(identical(sep,"

\n"

))"

else"

'

\"

dec="

."

skip=0,nlines=0,na.strings="

NA"

flush=FALSE,fill=FALSE,strip.white=FALSE,

quiet=FALSE,blank.lines.skip=TRUE,multi.line=TRUE,

comment.char="

allowEscapes=FALSE,encoding="

unknown"

一、主要的参数说明如下:

what:

声明读入为字符类型数据,可能指定读入的精度/类型,例如:

what=integer(0);

what=numeric(0);

what=character(0);

如果SCAN()读入有字符与数字,用what="

来进行声明,则会把读入的数字隐式的都转变成字符;

2) 

SEP:

指定各个读入的数据之间的分隔符;

默认情况下分隔符:

空格、tab;

如果不是其它分隔符,例如“:

/”通过SEP来指定;

3) 

可以通过list指定读入变量的变量名,同时生成的对象为列表,则可以同时读入字符与数字;

4) 

Skip从第几行开始读入数据;

5) 

Nlines指定最大读入行数;

6) 

如果通过键盘输入的时候,不希望出现下标提示,则可以使用:

quiet=TRUE;

7) 

encoding=””指定的编码格式,有时候读入的中文可能会出现乱码的时候,可能通过这个参数来指定:

Latin-1或者UTF-8;

二、SCAN几点注意:

用于读入纯字符或者数字,没有表头;

如果输入的单一类型的变量,例如均是:

数值或者均是字符,用scan效率更高。

但其不能读入混合类型的数据,也就是在scan()读入的必须同为字符或者同为数值;

默认情况下用scan读入的数据生成向量类型(这也就是为什么读入的数据必须是同为字符或者同为数字)。

三、案例说明

1、手工输入数据

1)从键盘中输入数字

2)从键盘中输入字符

2、从外部读入

1)从D盘读入TXT文件,例如:

3、如果读入的数据中有字符或者数字,可以通过list来进行指定,则生成的对象是列表格式,如下:

4、指定输入字符的编码类型

数据的输入与输出之READ函数

read.table()函数

1、用于读入表格(表)类型的数据,同时生成数据框对象。

2、读入的数据要求有规则的分隔符,默认有:

空格、TAB、换行符、回车符;

其它的分隔符,通过sep=来进行指定。

read.table(file,header=FALSE,sep="

quote="

dec="

row.names,col.names,

as.is=!

stringsAsFactors,

na.strings="

colClasses=NA,nrows=-1,

skip=0,check.names

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1