R--基本数据类型

2016-03-17  本文已影响166人  KevinCool

向量

a<-c(1,23,4,2)
a[4]
a[2:3]
a[c(1,4)]```

#矩阵

cells<-c(1:4)
rnames <- c("row1","row2")
cnames<- c("col1","col2")

表示按行填充,dimname为行名与列名,分别是向量

mymatrix <- matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
mymatrix

表示按列进行填充

mymatrix1 <- matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames))
mymatrix1

矩阵元素的选择

mymatrix1[1,]
mymatrix1[,2]
mymatrix1[1,2]
mymatrix1[1,c(1,2)]
mymatrix1[1:2]
mymatrix1[,1:2]

矩阵,向量,数组都只能包含一种元素```

数组

dim1<- c("A1","A2")
dim2<- c("B1","B2","B3")
dim3<- c("C1","C2","C3","C4")
#array()函数创建一个数组,第一个参数是值向量,第二个参数是维度最大值向量
#第三个参数是各个维度的标签,可选
z<- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
z
#所以第一个参数和第二个参数是必须的,第二个参数的维度最大值至少要能容纳下数据
x<-array(1:24,c(3,3,3))
x
#数组中选取元素的方式,构想一下,三维数组的选取方式
z[1,,]
z[1,2,]
z[1,2,3]
z[c(1,2),,]```

#数据框

patientID<-c(1,2,3,4)
age<-c(25,32,43,28)
diabetes<-c("Type1","Type2","Type1","Type1")
status<-c("poor","improved","excellent","poor")

使用data.frame()来创建数据框,其中参数名作为field名字,然后row.names=patientID指定实例标识符

patientdata<-data.frame(patientID,age,diabetes,status,row.names=patientID)
patientdata

使用类似矩阵的方式选取元素

patientdata[1:2]
patientdata[,1:2]

也可以使用列名来选取

patientdata[c("diabetes","status")]

选取一个特定变量,输出一个向量

patientdata$age

生成列变量之间的列联表

table(patientdata$diabetes,patientdata$status)

使用attach()函数,将这个数据框加入到R搜索路径中,就可以直接使用列变量了

attach(patientdata)
summary(age)
plot(age,patientID)
detach(patientdata)

但是如果环境中如果有相应的列变量,就会被掩盖,会造成错误

使用with()函数

with(patientdata,{
summary(age)
plot(age,patientID)
#可以在with之外执行
keeppatient<<-summary(age)
#不能在with之外执行
nokeeppatient<-summary(age)
})
keeppatient
nokeeppatient

{}之间的代码都相对于数据框patientdata执行

创建可以在with()结构外存在的对象<<-```

因子

#名义型变量和有序型变量成为因子
#作为名义型变量因子存在
diabetes<-factor(diabetes)
#有序型变量因子
status<-factor(status,ordered=TRUE)
#由于字符类向量,因子的水平默认值是按字母顺序创建,所以可能不合适,用以下方法改变
status<-factor(status,order-TRUE,levels=("Poor","Improved","Excellent"))

patientID<-c(1,2,3,4)
age<-c(23,32,43,14)
diabetes<-c("type1","type2","type1","type1")
status<-c("poor","excellent","improved","poor")
#一个名义型变量因子
diabetes<-factor(diabetes)
#一个有序型变量因子
status<-factor(status,ordered=TRUE)
petientdata<-data.frame(patientID,age,diabetes,status)
#提供R中某个对象的信息,对象的结构
str(patientdata)
#显示对象的统计概要,会区别对待各个变量
summary(patientdata)```

#列表

一些对象的有序集合

g<-"my first list"
h<-c(23,43,23,54)
j<-matrix(1:10,nrow=5,byrow=TRUE)
k<-c("one","two","three")

name1=g来指定项目名称,list可以包含任何数据类型

mylist<-list(title=g,ages=h,j,k)
mylist

选取元素,使用双重方括号

mylist[[2]]
mylist[["ages"]]```

通过这种方式来选择元素

a<-c(1,2,3,4,5,6,7,8)
a[a%%2==0]
#生成步长为4的向量
seq(1,100,by=4)
#所以按照步长来选取元素可以这样,done!
a[seq(1,8,by=2)]```
上一篇下一篇

猜你喜欢

热点阅读