向量是以一维数组的方法管理数据的一种对象类型。可以说向量是R语言中最基本的数据类型,很多算法函数都是以向量的形式输入的。
向量可以是数值型、字符型、逻辑值型(T、F) 和复数型。
向量创建
- 向量是以一维数组的方法管理数据的一种对象类型
- 向量是R语言中最基本的数据类型,很多算法函数都是以向量的形式输入的
- 向量可以是数值型、字符型、逻辑值型(T、F)和复数型
实例:(1)直接创建向量
- 执行组合功能的c函数可以创建向量:
- length函数测长度
- 一个向量的所有元素都必须属于相同的类型。如果不是,R将强制执行类型转换
等差序列向量的创建-seq(sequence)
seq产生等距间隔的数列,其基本形式为:
seq(from=1,to=1,by=((from-to)/(length.out-1)),length.out=NULL,along.with=NULL,…)
参数 | 描述 |
---|---|
from | 等差数列的首项数据,默认为1 |
to | 等差数列的尾项数据,默认为1 |
by | 步长,或等差增量 |
length.out | 序列的长度 |
along.with | 用于指明该向量与另外一个向量的长度相同,后面为另一个向量的名字 |
seq产生等距间隔的数列
重复序列向量的创建-req(replicate)
rep函数是用于创建重复序列的函数,其能将某一向量重复若干次,具体格式为:
rep(x,times=1,length.out=NA,each=1)
参数 | 描述 |
---|---|
x | 要重复的序列对象 |
times | 重复的次数 |
length.out | 序列的长度 |
each | 每个元素重复的次数,初始值为1 |
常用基本形式为:
rep(x,n)。其中x是预重复的序列,n是重复的次数
填空练习
1
rep(1:4,2)创建的序列为_。
1 2 3 4 1 2 3 4
2
rep(1:4,c(2,2,2,2))创建的序列为_。
1 1 2 2 3 3 4 4
3
rep(1:4,each=2,len=4)创建的序列为_。
1 1 2 2
向量索引
- 通常,我们只要访问向量中的部分或个别元素。这就是所谓的索引
- R语言中,向量索引可通过元素下标、逻辑向量、元素名称、which函数、subset函数、match函数等方式实现
- 下标索引主要通过方括号[]来实现
- (也有人称之为子集、下标或切片,这些术语所指相同)
示例:
下标索引
ve <- c(1,2,3,4,5,6) #创建向量
ve[2] #查看向量ve的第2个元素
ve[1:4] #查看前4个元素
ve[c(2,4,5)] #查看第2,4,5个元素
ve[-1] #查看除第一个元素外的所有元素
ve[-c(1,3)] #查看除第1,3个元素之外的所有元素
ve[c(1:3)] #查看前3个元素
逻辑索引
ve[c(TRUE,TURE,FALSE,FALSE,TRUE,FALSE)] #通过逻辑序列查看第1,2,5个元素
名称索引
names(ve) <- c(“one”,“two”,“three”,“four”,“five”,“six”) #给向量中的每个元素命名
ve[c(“one”,“two”,“six”)] #查看名称为one,two,six的元素
混合使用正负值是不允许的
which函数将返回逻辑向量中为TRUE的位置
- > x <- c(2,4,6,8,1)
- > which(x>3)
- [1] 2 3 4
which.min和which.max分别是which(min(X))和which(max(x))的简写:
- > which.min(x)
- [1] 5
- > which.max(x)
- [1] 4
subset函数将检索向量中满足条件的元素
match函数索引:match(x,y)返回的是x中的每个元素在y中对应的位置。如果x中的元素在y中不存在,则返回NA
判断向量中是否包含某项数据
- > ve <- c(1,2,3,4,5,6) #创建向量
- > c(1,5)%in%ve
- [1] TRUE TRUE
- > c(10,2)%in%ve
- [1] FALSE TRUE