R语言中包含五种数据结构:1.向量,2.矩阵,3.数组,4.数据框,5.列表,6.因子

1.向量:用于存储数值型、字符型、逻辑型数据的一维数

#用c()创建一个数组,如下:
#同一个向量应只包含一种数据类型
a<-c(1,3,4,5,6)
b<-c("Hello","World","What")
c<-(TRUE,FALSE,TRUE,TRUE,FALSE)
#向量元素的获取
a[3]
a[c(1,3)]
a[2:5]
#注意以下为错误示范
#内部全部转化成了字符串形式
>d<-c(12,TRUE,"Hello")
>d
[1]:"12" "TRUE" "Hello"
#内部全部转化成逻辑值
>f<-c(12,TRUE) >f [1]: 12 1

2.矩阵:用于创建二维数组,每一个向量只包含一种数据类型。

#创建方式
a<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimname=list(char_vector_rownames,char_vector_colnames)) 
 
vector:元素向量
nrow:矩阵行数
ncol:向量列数
byrow:为TRUE时,按照行填充;为FALSE时,按照列填充
dimname:行名和列名
 
 
#创建一个向量
> a<-matrix(1:20,nrow=4,ncol=5,byrow=TRUE,dimnames=list(c("第一行","第二行","第三行","第四行"),c("第一列","第二列","第三列","第四列","第五列")))
> print(a)第一列 第二列 第三列 第四列 第五列
第一行 1 2 3 4 5
第二行 6 7 8 9 10
第三行 11 12 13 14 15
第四行 16 17 18 19 20 
 
 向量元素的获取:
 
 
#获取第二行元素
a[2,]
#获取第二列元素
a[,2]
#获取某一行某几个元素
a[2,c(3,4)]
#获取某一列某几个元素
a[c(1,2),3]

3.数组:与矩阵类似,但是维度可以大于二

#数组创建
myarray<-array(vector,dimension,dimnames) 
 
vector:数组元素
dimension:定义各维度下标的最大值
dimnames:各维度名称标签的列表
 
 
#创建数组
dim1<-c("A1","A2")
dim2<-c("B1","B2","B3")
dim3<-c("C1","C2","C3","C4")
z<-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
#创建了一个2*3*4的三维数组
#数组元素获取方式可以参照矩阵


4.数据框:同一列需要是同一种数据类型,不同列数组类型可以不一样

#数据框创建方式
mydata<-data.frame(col1,col2,col3,col4)
#数据框实例
patientID<-c(1,2,3,4)
age<-c(25,23,34,32)
diabetes<-c("Type1","Type2","Type3","Type4")
status<-c("Poor","Improved","Excellent","Poor")
patientData<-data.frame(patientID,age,diabetes,status)
#输出的数据框  patientID age diabetes status
  1 1 25 Type1 Poor
  2 2 23 Type2 Improved
  3 3 34 Type3 Excellent
  4 4 32 Type4 Poor  #数据框元素的获取
  #获取第一列和第二列
  patientData[1:2]
  #获取特定变量
  patientData$agee

5.列表:特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可 以是任意对象,不同元素不必是同一类型。

#创建列表
rec <- list(name="李明", age=30, scores=c(85, 76, 90))

6.因子:类别(名义型)变量和有序变量(有序型)变量在R中统称因子

#名义型
diatebes<-("Type1","Type2","Type3","Type1")
diatebes<-factor(diabetes)
#存储为(1,2,3,1),它是无序的
#有序型
status<-c("Poor","Improved","Excellent","Poor")
status<factor(status,ordered=TRUE)
#存储为(1,2,3,1)

以上为R中常用的数据结构,后续会在具体应用中灵活运用。