第二章:数据类型 第二节:向量

本文详细介绍了R语言中向量的概念、创建方法、不同类型数据的处理、下标访问、长度获取、运算符应用以及连续数字和重复值向量的生成。涵盖了标量与向量的区别,以及如何对向量进行基本操作和数学计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.向量与标量

1.标量是只含有一个元素的向量,例如:f<-3、g<-"US"和h<-TRUE,它们用于保存常量

2.向量(vector)是R中最重要的一个概念,它是构成其他数据结构的基础,与数学中向量概念是不同的,类似于数学上的集合概念,由一个或多个元素构成。用于储存数值型、字符型或逻辑型数据的一维数组,执行组合功能

二.向量的建立和使用

1.向量的建立

(1).使用c()函数可以用来创建向量,使用字符串创建时必须添加引号

例如:

①使用数字创建

②使用字符串创建

注意:一个向量只能有一种数据类型,可以有重复值。如果输入了不同数据类型的数值,会自动转化为所含数据类型最高表现力的数据,转换顺序为Null<raw<logical<integer<double<complex<charater<list<expression

2)向量命名

我们可以使用names<-()来对向量中的数据进行指定名称

我们可以利用names()来获取向量中数据的指定名称

(3)连续的数字使用冒号":"生成等差数列

例如:生成“1~8”

2.对单个向量进行操作

(1)赋值

①向量由元素组成,赋值给一个变量名字,字母数字下划线,,但必须要以字母开头。在R语言里,可以使用=赋值,也可以使用<-赋值,x(变量名)<-(赋值符号)c(1,3,4,4)(赋值内容)

例如:

 
②赋值+输出一起执行:(x<-c(1,3,3))或者x<-c(1,2,3);x

例如:

3.对多个向量的操作

向量不支持嵌套操作,因此当一个向量中含有其它向量时候,会自动合并为一个向量

三、访问向量中的数据

在实际对向量的操作中,我们可以通过多种方式来进行向量的访问

(1)使用[]指定下标来进行访问,注意,R语言中下标是从1开始的

如果我们传入的下标为负数,则返回除了该位置以外的所有向量数据,正数和负数不能共存

如果我们想要获取多组数据,可以在[]中再涵盖一个向量,用来指定输出位置

我们还可以指定一个区间输出向量,输入[start(即开始位置):end(即结束位置)]即可,所获取的数据包含start和end

我们如果之前使用了names<-()函数对向量中的数据进行了命名,我们也可以通过输出命名的方式来进行访问元素

同时,我们也可以使用names()[]查看向量中特定数据的名称

(2)利用函数获取向量长度

我们可以利用和length()函数进行获取向量长度

我们也可使用NROW()参数获取向量的长度,这个函数的意义是将向量转化为n行1列的矩阵,并返回长度

四、向量运算

我们可以运用多种函数进行向量的运算,例如求交集、并集、补集等

(1)交集、并集、差集

Intersect(x,y)求交集

Union(x,y)求全集

Setdiff(x,y)求差集,x-y

setequal()用来判断两个集合是否相同 

(2)向量运算符

使用==进行对应位置比较,相同数值的输出TURE,否则输出FALSE。如果两组数据长度不同,则输出长的

使用x%in%y,对X里的每一个元素进行判断,判断是否每一个数值在y里,输出的向量长度由x即前向量说了算

这也可以实现单个数值的比较

使用identical()函数进行判断两个向量是否含有完全的相同元素

(3)数学计算

加减乘除:向量+1,表示向量中的每个数都+1,其余类似,

可以使用+直接将两个向量相加,让x中对应的数值与y相加,其余类似

**乘幂运算,%%求余数,%/%整除运算

五、连续数字组成的向量

(1)我们可以里哟给seq(form,end,增量)函数生成有序的序列,其中增量可以省略,默认为1

(2)当然,我们可以更直接点用start:end直接创建有序序列

(3)如果我们需要一个作为索引量的向量时,我们可以使用1:NROW()函数进行创建,其中1可以被替换,替换为几就从几开始

当然,我也可以使用seq_along(x)参数创建索引向量

六、保存重复值的向量

在默认状态下,向量是不能保存重复值的,但是我们可以用rep()函数进行创建和保存重复值向量,其中包含times和each参量

(1)times=x 表示总体向量重复x次

(2)each=x 表示每个向量值重复x次

(3)如果两者混用,则先执行each,再执行times

向量则是数据框单独拿出的一列,视为一整个向量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值