R语言笔记-R语言数据挖掘方法及应用--2

来源:互联网 发布:淘宝直播时怎么调镜像 编辑:程序博客网 时间:2024/06/16 16:23

-----R对象和数据组织---------------

2016-7-31
2016/09/03 10:38
R的数据对象
---存储角度:数值型,字符型,逻辑型
---结构角度:向量(具有相同存储类型数据的集合)
                      矩阵(列:变量,行:观测)--二维表格
                    数组(多张二维表的集合)
                    数据框(与矩阵类似,用于存储多个存储类型不同的变量)
                    列表:向量、矩阵、数组、数据框的集合
-----------------------------------------------------------------
创建和访问R的数据对象
---(1)创建R的数据对象:对象名<-R常量或R函数
--- (2)访问R的数据对象:对象名或print(对象名)
----(3)查看R的数据对象的结构:str(对象名)
-----(4)管理R的数据对象:ls():显示当前工作区间的变量名列表
-------rm(对象名或对象名列表),remove(对象名):删除当前工作区间的指定对象。
-----------------------------------------------------------------------
   调用R的向量组织数据
判断数据对象是否为向量:is.vector(数据对象名)
创建只包含一个元素的向量:标量
------对象名<-R常量
-----(V4<-TRUE),幅值语句直接放入括号内,表示创建对象,并直接显示对象值
-----#开头的程序行为注释

创建包含多个元素的向量
---包含多个元素的目的是:保存一个变量到R中。----对象名<-R函数
最常用的R函数是C函数,seq,rep,
holderage<-c(22,22,23,23)
> length(holderage)
[1] 4
> vehiclegroup<-rep("A",each=4)
> vehiclegroup
[1] "A" "A" "A" "A"
> vehiclleage<-seq(from=1,to=4,by=1)
> vehiclleage
[1] 1 2 3 4
> claimamt<-c(2312,2256,1064,1280)
> claimamt
[1] 2312 2256 1064 1280
> nclaims<-c(8,8,4,1)
> nclaims
[1] 8 8 4 1
> str(vehiclegroup)
 chr [1:4] "A" "A" "A" "

向量相同,可以使用赋值语句,向量元素相同,可借助重复函数和序列函数简化书写

rep重复函数
rep(起始值:终止值,each=重复次数)或times=重复次数
 (vehiclegroup<-rep(10:15,times=4))
 [1] 10 11 12 13 14 15 10 11 12 13 14 15 10 11 12 13 14 15 10 11 12 13 14 15
> (vehiclegroup<-rep(10:15,each=4))
 [1] 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 14 14 14 14 15 15 15 15

seq序列函数
   seq(from=起始值,to =终止值,by=步长)
    seq(from=起始值,to =终止值,by=个数)   
scan键盘数据读入函数
          R支持从键盘输入一组数据到指定向量中,函数书写:
                对象名<-scan()
            每个数据间以回车键分隔,所有数据输入完毕后,按住Ctrl+回车键表示结束输入。
Vector创建向量函数
        vector(length=元素个数),创建的初值默认为FALSE,需通过向量元素访问,给各元素赋予具体值
 vector(length=5)
[1] FALSE FALSE FALSE FALSE FALSE

访问向量中为元素
-----访问指定位置上的元素:
> a<-vector(length=10)
> a
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> a[1]<-1
> a[2:4]<-c(2,3,4)
> a
 [1] 1 2 3 4 0 0 0 0 0 0
> b<-seq(from=5,to=9,by=1)
> b
[1] 5 6 7 8 9
> a[5:9,10]<-c(b,10)
Error in a[5:9, 10] <- c(b, 10) : 矩阵里的下标数目不对
> a
 [1] 1 2 3 4 0 0 0 0 0 0
a[c(5:9,10)]<-c(b,10)
> a
 [1]  1  2  3  4  5  6  7  8  9 10


-----利用位置向量访问指定位置上的元素

利用逻辑型位置向量访问指定位置上的元素,a[b],b的长度不够a的长度时,按b 先前的顺序取值

-------访问指定元素之外的元素
向量名[-位置常量];访问除第几个元素以外的元素
向量名[-位置常量1:位置常量2]
向量名[-c(5:9),10]
向量名[-位置向量名]



用R的矩阵组织数据
可通过is函数判断数据对象是否为矩阵。
is.matrix(数据对象名)
2016/09/03 14:07
由向量创建矩阵
cbind(向量名列表):各向量存储类型一致
ClaimData<-cbind(holderage,vehiclege,claimamt,nclaims)


dim(矩阵名):显示矩阵行列数

colnames(ClaimData)  : 显示矩阵各列名称
colnames(ClaimData [,2:4])  显示矩阵指定列名称

rownames(ClaimData)<-c("1","2","3","4"),给矩阵各行命名
显示指定行名称:rownames(Claimdata[c(1,3),])

rbind(a,b)  行合并函数

------------由单个向量派生矩阵
矩阵中的元素已存在于一个向量中
matrix(向量名,nrow=行数,ncol=列数,byrow=TRUE/FALSE,...)
a<-matrix(a,nrow=5,ncol=6,byrow=FALSE,dilnames=list(dim1,dim2));
---------访问矩阵中的元素:
1)访问指定位置上的元素
矩阵名[行位置常量,列位置常量]
矩阵名[c(1,2),c(1,3)]

2)访问指定行上的所有元素
head(矩阵名,n)
tail(矩阵名,n)
3)访问指定列上的所有元素

4)利用编辑窗口访问矩阵元素
fix(矩阵名)
2016/09/04 13:24

---------------------------------------------------------------------------------------------------------------------------------------
数据框用于存储多个存储类型不尽相同的变量;
      统计                计算机
行:观测----------记录
列:变量----------

判断数据对象是否为数据框
is.data.frame(数据对象名)  TRUE?FALSE

创建数据框
ChaimDataFrm<-data.frame(域名1=向量名1,域名2=向量名2,。。。)
创建数据表时,数据框中是空的,通过:numeric(0)创建一个不包含任何数据的数值型的域。

访问数据框
(1)矩阵方式访问
(2)数据框名$域名
        数据框名[["域名"]]
        数据框名[[域编号]]
还可:
        attach(数据框名)
        访问域名函数1
        访问域名函数2
        detach(数据框名)
还可:
    with(数据框名,{
            域访问函数1
            域访问函数2
            }
with内为局部环境,类似C语言里的局部变量。
若修改数据框中的值或增加新的域,需采用within函数
数据框名<-within(数据框名,{
                        域访问函数
                        域修改函数
                                })
在{ }内生成的新向量均默认加入数据框,成为新的域。
2016/09/04 14:08
----------------------------------------------------------------------------------------------------------------------------------------------

0 0
原创粉丝点击