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]]       

索引列表中元素:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值