数据集是由数据构成的一个矩阵数组,航表示观测,列表示变量。常用的数据结构主要有向量、矩阵、数组、数据框、因子以及列表。
向量是一维数组。执行组合功能函数c()来创建向量。
a<-c(1,2,5,8,-1,4)
矩阵是二维数组。
rnames<-c("age","gender","weight")
cnames=c("1","2","3","4")
mydata<-matrix(1:12,nrow=4,ncol=3,byrow=TRUE,dimnames=list(cnames,rnames))
数组可以是多维的(维度大于2)myarry<-array(vector,dimensions,dimnames)
d1<-c("A1","A2")
d2<-c("B1","B2","B3")
d3<-c("C1","C2","C3","C4")
myarray<-array(1:24,c(2,3,4),dimnames=list(d1,d2,d3))
这里的c(2,3,4)是三个维度下标的最大值,相当于x,y,z轴上数据的最大值,查询调取数组中的数据时,可以使用代码
myarray[1,2,3]
这里必须使用[],否则会报错。
数据框是R中最常处理的数据结构,不同的列可以包含不同模式(数值型、字符型等)数据,函数mydata<-data.frame(col1,col2,col3,….)
创建一个数据框:
age<-c("3","4","2","5")
gender<-c("F","M","M","F")
mydata<-data.frame(age,gender,weight=numeric(4))
fix(mydata)或mydata<-edit(mydata)
选取数据框中的元素
mydata[1:2]#1-2列
mydata[2,(1:2)]#第2行,1-2列
mydata[(1:3),2]#第1-3行,第2列
mydata$age#数据中的变量age
table(mydata$age,mydata$gender)#生成age和gender的列联表
因子:名义型变量(类别)和有序型变量(有序类别)。名义型变量是没有顺序之分的类别变量(性别、糖尿病类型)。有序性变量表示一种顺序关系,而非数量关系(好、非常好、太好了)。连续性变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量(年龄,产量等)。函数diabetes<-factor(diabetes),名义型变量会自动存储成数字,有序型变量的参数ordered=TRUE,所有的顺序都是按照字母先后排序的。也可以使用levels选项来覆盖默认排序,levels=c(“”,“”,“”)
sex<-factor(sex,levels=c(1,2),labels=c("Male","Female"))
列表,是一些对象的有序集合,一个列表里可以有向量、矩阵、数据框等等,甚至其他列表的组合。mylist<-list(object1,object2,…)