R语言数据类型深入详解
R语言用来存储数据的对象包括:向量,因子,数组,矩阵,数据框,时间序列(ts)以及列表
意义介绍
1.向量(一维数据):只能存放同一类型的数据
语法:c(data1,data2,...),访问的时候下标从1开始(和Matlab相同);向量里面只能存放相同类型的数据.
>x<-c(1,5,8,9,1,2,5) >x [1]1589125 >y<-c(1,"zhao")#这里面有integer和字符串,整数自动转化成了字符 >y[1] [1]"1"
访问:
>x[-(1:2)]#不显示第1,2个元素 [1]89125 >x[2:4]#访问第2,3,4个元素 [1]589
2.因子(factors):提供了一个处理分类数据的更简洁的方式
因子在整个计算过程中不再作为数值,而是作为一个"符号"而已.
factor(x=character(),levels,labels=levels,exclude=NA,ordered=is.ordered(x),nmax=NA)
x:一个数据向量,它将被转换成为因子;
levels:用来指定因子可能出现的水平(默认也就是向量x里面互异的值,sort(unique(x)));它是一个字符向量(即每个元素是单个字符,组成的一个向量),下面的变量b就是一个字符向量(可以使用as.character()函数来生成).
labels:用来指定水平的名字;
>a<-c(6,1,3,0) >b=as.character(a) >b [1]"6""1""3""0"
exclude:一个值向量,表示从向量x里面剔除的水平值.
nmax:水平数目的上界.
>factor(1:3) [1]123 Levels:123 >factor(1:3,levels=1:6) [1]123 Levels:123456 >factor(1:6,exclude=2) [1]13456 Levels:13456
一般因子(factor)VS有序因子(orderedfactor)
因子用来存放变量或者有序变量,这类变量不能用来计算,而只能用来分类或者计数.一般因子表示分类变量,有序因子用来表示有序变量.
创建一个因子:
>colour<-c('G','G','R','Y','G','Y','Y','R','Y')
>col<-factor(colour)#生成因子
#labels里面的内容代替对应位置处的levels内容
>col1<-factor(colour,levels=c('G','R','Y'),labels=c('Green','Red','Yellow'))
>levels(col)
[1]"G""R""Y"
>levels(col1)
[1]"Green""Red""Yellow"
>col2<-factor(colour,levels=c('G','R','Y'),labels=c('1','2','3'))
>levels(col2)
[1]"1""2""3"
>col_vec<-as.vector(col2)
>class(col_vec)
[1]"character"
>col2
[1]112313323
Levels:123
>col_num<-as.numeric(col2)
>col_num
[1]112313323
>col3<-factor(colour,levels=c('G','R'))#levels里面没有'B',导致col3里面的'B'变成了
>col3
[1]GGRGR
Levels:GR
>colour
[1]"G""G""R""Y""G""Y""Y""R""Y"
创建一个有序因子:
>score<-c('A','B','A','C','B')
>score1<-ordered(score,levels=c('C','B','A'));
>score1
[1]ABACB
Levels:C
3.矩阵(matrix,二维数据):只能存放同一类型
语法:matrix(data,nrow=,ncol=,byrow=F)--byrow=F表示按列来存放数据(默认),byrow=T表示按行存放数据;
>xx=matrix(1:10,2,5)
>xx
[,1][,2][,3][,4][,5]
[1,]13579
[2,]246810
4.数组(大于等于三维的数据):只能存放同一类型
语法:array(data,dim)--data:必须是同一类型的数据;dim:各维的维度组成的向量;(怎么感觉和matlab里面的reshape函数那么像)
>a=array(1:10,c(2,5))
>a
[,1][,2][,3][,4][,5]
[1,]13579
[2,]246810
5.数据框(dataframe)
数据框是一种矩阵形式排列的数据(类似于excel表格),但是和矩阵不同的是,它的每一列可以是不同的数据类型(还是和excel很像).
语法:data.frame(data1,data2,...)--data1,...为每列的数据.
>name<-c("MrA","MrB","MrC")
>group<-rep(1,3)
>scort<-c(58,15,41)
>df<-data.frame(name,group,scort)
>df
namegroupscort
1MrA158
2MrB115
3MrC141
数据访问:
>df$name
[1]MrAMrBMrC
Levels:MrAMrBMrC
>df[1]
name
1MrA
2MrB
3MrC
6.列表(list):可以存放不同类型的数据
语法:list(name1=component1,name2=component2,...)
>xx<-rep(1:2,3:4)
>yy<-c('MrA','MrB','MrC','MrD','MrE','MrD','MrF')
>zz<-'discussiongroup'
>name.list<-list(group=xx,name=yy,decription=zz)
>name.list
$group
[1]1112222
$name
[1]"MrA""MrB""MrC""MrD""MrE""MrD""MrF"
$decription
[1]"discussiongroup"
参考:
blog.sina.com.cn/s/blog_4d9814240102vigp.html
到此这篇关于R语言数据类型深入详解的文章就介绍到这了,更多相关R语言数据类型内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。