数据结构"/>
2.R学习—R中的数据结构
了解数据结构并创建数据集是进行数据分析的第一步
R拥有标量、向量、矩阵、数组、数据框和列表这些数据类型用于存储数据。
形象表示如下图
1.标量
标量是只含有一个元素的向量
#创建标量
a <- 3 #数值型
b <- "woxihuanchifan" #字符串型
c <- True #布尔型
2.向量
向量可以存储多个元素的一维数组,可以是数值型、字符型,也可以是布尔型(逻辑型)。但是单个向量中只可以存储相同类型的元素。使用 c() 来创建
number1 <- c(1,2,3,4)
number2 <-c("one","two","three","four")
bool <-c(TRUE,FALSE,TRUE,TRUE)
#生成数值序列时可以使用 :
number3 <- c(1:4) #与number1等同
右边可以观察到三种不同的类型 logi、num、chr
3.矩阵
矩阵是一个二维的数组
3.1通过matrix()来创建矩阵,与向量相同,同一个矩阵只能含有相同的类型的元素
#使用matrix()函数来创建矩阵,括号中包含函数的各种参数
#mymatrix <- matrix(vector, #矩阵的元素
# nrow=number_of_rows, #矩阵的行数
# ncol=number_of_colums, #矩阵列数
# byrow = logical_value #是否按行填充
# dimnames = list(char_vector_rownames,char_vector_colnames)#行名与列名
# )ID<-c(11:30)
rownames<-c("row1","row2","row3","row4")
colnames<-c("col1","col2","col3","col4","col5")
matrix1<-matrix(ID,nrow = 4,ncol = 5,dimnames = list(rownames,colnames))
3.2调用矩阵中的元素
#使用中括号来调用矩阵中的元素
matrix1[2,3]表示矩阵中的第23行第3列的元素
matrix[1,]表示第一行的所有元素,即当对应位置为空时,表则示所有(这里为第一行,1至5列的所有元素)
matrix[,]因此这里表示matrix1的所有元素,与直接调用matrix1返回相同的结果
4.数组
数组(array)与矩阵类似,但是维度可以大于2,通过array()来创建,同样只能含有相同类型的元素
#myarray <- array(vector, #数组中的数据
# dimensions, #是一个数值型向量,表示各个维度的个数
# dimnames) #各维度的标签名称dim1<-c("A1","A2")
dim2<-c("B1","B2","B3")
dim3<-c("C1","C2","C3","C4")
myarray<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3))
myarray[,,]
调用方法同矩阵
5.数据框
数据框与矩阵类似,是处理数据时最常用的结构,与矩阵的区别在于每一列可以拥有不同的模式,即不同的数据类型,通过data.frame()来创建。
ID<-c(1:4)
age<-c(18:21)
gender<-c(TRUE,F,T,T)
#这里用TRUE表示女性,FALSE表示男性,R中可以缩写为T,F
name<-c("xiaohong","zhangsan","lisi","wangwu")
student<-data.frame(ID,age,gender,name)
student[,]
调用数据框中元素可以采用与前面相同的方法student[1,2],表示第一行第二列
也有特殊的调用方法
student[1] #表示第一列
student[1:3]#表示第一至第三列#也可以使用$符号
student$age #选取数据框中的age标量
6.因子
也是我学习过程中曾不理解的地方
首先,变量可以分为名义型、有序性、连续型三类。
名义型是没有顺序的类别变量,有序性表示类别变量之间有一种顺序关系,连续型变量可以是某个范围内的任意值,同时表示了顺序和数量
名义型变量和有序性变量在R中成为因子(facto
基本语法为 myfactor <- factor(x=character(),odered=TRUE,levels=c())
可参考下面链接学习:
(10条消息) R中因子(factor)_r语言factor函数_皮肤科大白的博客-CSDN博客
7.列表
列表是R数据结构中最复杂的一种,相比于前面的各种数据类型,列表就像是一个大集合,它可能整合了若干个向量、矩阵、数据框,甚至也可包含其他列表。可以使用list()来创建。
a<-"wo ai gan fan"
b<-c(32,325,23,64,151,126)
c<-matrix(1:20,nrow=4)
d<-c("zhangsan","lisi","uzi","jklove")
mylist<-list(title=a,ID=b,c,d) #可以像title=a这样指定修改列表成员的名称
mylist
mylist$title
mylist[[1]] #也等价于mylist[["title"]]
mylist[[4]]
索引列表中元素:
更多推荐
2.R学习—R中的数据结构
发布评论