一、数据结构回顾
R中用于存储数据的形式即数据结构,包括向量(vector,文档4中已介绍);矩阵(matrix)、数组;数据框(dataframe)和列表(list) (记住各数据结构的英文,后面要用。数组了解概念就行)。
——本节详细内容可参考Robert I. Kabacoff《R语言实战(第2版) 》
二、数据结构
1列表 (list)
列表是一些成分或对象的集合。
矩阵创建函数为:list()
特点:可包含各种数据模式。
list()函数格式如下:
mylist<- list(object1,object2, object3,...)
#也可以在object前加上name为其命名
mylist<- list(name1=object1,name1=object2,name1=object3,...)
举例:
g<-"My first list"
h<-c(25,18,29)
j<-matrix(1:10,nrow=5)
k<-c( "one","two","three")
mylist<-list(title=g,ages=h,j,k)
mylist

2 列表中元素的引用 (即元素的提取)
其他同前,这里也可使用$选定数据框中某个字段的数据
举例:
mylist$age

3 判断数据是否为列表
is.list()函数 #返回逻辑值

三、因子
在R中,类别(名义型:没有顺序之分的类别变量)和有序类别(有顺序型)在R中成为因子。
举例:糖尿病类型分为:Type1和Type2,这两者之间无顺序之分;病情严重程度分为轻、中、重,这有顺序之分。
函数factor()以一个整数向量的形式储存类别值,取值整数范围是1-k,k为名义型变量的唯一值的个数。
比如:
diabetes<-c("Type1","Type2","Type1")
diabetes<-factor(diabetes)
#返回为字符值,但其在计算机中存储的格式为(1,2,1)
#具体赋值根据字符顺序而定
str(diabetes) #展示diabetes的结构
status<-c("Poor","Improved","Excellent","Poor")
status<-factor(status,order=TRUE)
str(status)
#对于有序型变量,需要用order命令指定参数
#在计算机中存储的格式为(3,2,1,3)
status<-factor(status,order=TRUE,levels=c("Poor","Improved","Excellent"))
str(status)
#通过levels参数来指定排序顺序,这里存储的值为(1,2,3,1)
#注意和上面不改变默认排序对比
sex<-c(1,2,2,1)
sex1<-factor(sex,levels=c(1,2),labels=c("Male","Female"))
str(sex1)
#数值型变量通过labels和levels参数指定赋值,这里将男赋值为1,女赋值为2
#两者之外的值会返回为缺失值NA。

四、数据模式、数据结构之间的转换
数据结构之间的转换
as.vector() #转为向量
as.matrix() #转为矩阵
as.data.frame() #转为数据框
as.list() #转为列表
数据模式之间的转换
as.factor() #转为因子型
as.numeric() #转为数值型
as.character() #转为字符型
as.logical() #转为逻辑型
举例:
a1<-c(1,2,1,2)
is.vector(a1)
a1
b<-as.character(a1)
b
a<-as.factor(a1)
a
a2<-matrix(1:6,nrow=3,ncol=2)
is.matrix(a2)
a2<-data.frame(a2)
is.matrix(a2)
is.data.frame(a2)

网友评论