我的编程空间,编程开发者的网络收藏夹
学习永远不晚

R语言中向量的加法和乘法运算

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

R语言中向量的加法和乘法运算

在R语言中,不同长度的向量也是可以相加和相乘的,乘法的规则和加法类似

1,相同长度的向量相加


> x<- 1:4
> y<- 1:4
> z<- x+y
> z

[1] 2 4 6 8

规则就是 x[1]+y[1],x[2]+y[2],x[3]+y[3],x[4]+y[4]


> x<- 1:4
> y<- 1:4
> z<- x*y
> z
[1] 1 4 9 16

乘法也类似

2,不同长度的向量相加


> x<- 1:4
> y<- 1:3
> z<-x+y
警告信息:
In x + y : 长的对象长度不是短的对象长度的整倍数
> z
[1] 2 4 6 5
> 

注意R返回了一个警告消息而不是一个错误消息, 因此这个操作实际上是被执行了的。

这一类的规则就是 x[1]+y[1],x[2]+y[2],x[3]+y[3],x[4]+y[1](因为y[3]就结束了,进入了又一次循环)

乘法规则类似


> x<- 1:4
> y<- 1:3
> z<- x*y
警告信息:
In x * y : 长的对象长度不是短的对象长度的整倍数
> z
[1] 1 4 9 4

另外,所得的向量长度为最长的那个向量的长度


> x<- 1:4
> y<- 1:3
> z<- 2:3
> w<- x+y+z
警告信息:
In x + y : 长的对象长度不是短的对象长度的整倍数
> w
[1] 4 7 8 8
> v<-x*y*z
警告信息:
In x * y : 长的对象长度不是短的对象长度的整倍数
> v
[1] 2 12 18 12
> 

但是这里出了一个问题,


> x<- 1:4
> y<- 1:3
> z<- 2:3
> x+y+z
[1] 4 7 8 8
警告信息:
In x + y : 长的对象长度不是短的对象长度的整倍数
> x+z+y
[1] 4 7 8 8
警告信息:
In x + z + y : 长的对象长度不是短的对象长度的整倍数
> z+x+y
[1] 4 7 8 8
警告信息:
In z + x + y : 长的对象长度不是短的对象长度的整倍数
><span style="color:#ff0000;"> z+y+x
[1] 4 7 8 7</span>
警告信息:
1: In z + y : 长的对象长度不是短的对象长度的整倍数
2: In z + y + x : 长的对象长度不是短的对象长度的整倍数
> z*x*y
[1] 2 12 18 12
警告信息:
In z * x * y : 长的对象长度不是短的对象长度的整倍数
> z*y*x
[1] 2 12 18 8
警告信息:
1: In z * y : 长的对象长度不是短的对象长度的整倍数
2: In z * y * x : 长的对象长度不是短的对象长度的整倍数
> 

不知道各位注意到了没有,难道我们的方法不对么

首先,加法和乘法运算,在没有括号等其他优先级的情况下是从左至右依次算的

我们来看一下


> x<- c(1,2,3,4)
> y<- c(1,2,3)
> z<- c(2,3)
> x+y
[1] 2 4 6 5
> x+y+z
[1] 4 7 8 8

> z+y
[1] 3 5 5
> z+y+x
[1] 4 7 8 7

所以说,不同长度的向量相加,顺序也是很重要的。

补充:R语言向量_常用的向量运算

向量运算与逻辑运算


> 2+3
[1] 5
> "+"(2,3)
[1] 5
> x<-c(1,2,4)
> x+c(5,0,-1)
[1] 6 2 3

这些都比较简单,就是简单的标量运算和向量运算,只不过是运算符可以放到前面,并且向量的对应元素需要相加罢了。


> x<-c(1,2,4)
> x*c(5,0,-1)
[1] 5 0 -4
> x<-c(1,2,4)
> x/c(5,4,-1)
[1] 0.2 0.5 -4.0
> x%%c(5,4,-1)
[1] 1 2 0

对于这几步的运算需要注意一下几点:*运算就是向量对应元素相乘,和线性代数里面的矩阵相乘并不一样。/运算就是对应元素相除就好。%%运算就是对应元素相除取余数。

向量索引


> y<-c(1.2,3.9,0.4,0.12)
> y[c(1,3)]
[1] 1.2 0.4
> y[2:3]
[1] 3.9 0.4
> v<-3:4
> y[v]
[1] 0.40 0.12

这些都比较容易,一看就会,不做详细解释


> x<-c(4,2,17,5)
> y<-x[c(1,1,3)]
> y
[1] 4 4 17

这个例子是想讲元素重复是允许的


> z<-c(5,12,13)
> z[-1]
[1] 12 13
> z[-1:-2]
[1] 13

带负号的下标代表我们想要把相应的元素剔除掉。

用:运算符创建向量


> 5:8
[1] 5 6 7 8
> 5:1
[1] 5 4 3 2 1
> i<-2
> 1:i-1
[1] 0 1
> 1:(i-1)
[1] 1

:运算符实际上就是为了得到一串等差数列,比较简单,但是要特别讲一下的是1:i-1和1:(i-1),这里面实际上及一个运算符优先级的问题,1:i-1是先计算1:i得到1 2,然后再减1得到0 1,而1:(i-1)是先计算i-1得到1后然后计算1:1,最后答案就是1.

使用seq()创建向量

这个函数也是用来生成等差数列的,具体用法看例子


> seq(from=12,to=30,by=3)
[1] 12 15 18 21 24 27 30

这一段代码表示从12到30生成等差数列,公差为3


> seq(from=1.1,to=2,length=10)
 [1] 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

这个表示从1.1到2生成10个数的等差数列

使用rep()重复向量常数

调用的格式是rep(x,times),表示创建times*length(x)个元素的向量,这个向量是有x重复times此构成。


> x<-rep(8,4)
> x
[1] 8 8 8 8
> rep(c(5,12,13),3)
[1] 5 12 13 5 12 13 5 12 13
> rep(1:3,2)
[1] 1 2 3 1 2 3
> rep(c(5,12,13),each=2)
[1] 5 5 12 12 13 13

最后一个each表示向量中每一个元素重复的次数,一个个元素重复的,不再是整个向量重复。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

R语言中向量的加法和乘法运算

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

R语言中向量加法和乘法运算的示例分析

这篇文章给大家分享的是有关R语言中向量加法和乘法运算的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在R语言中,不同长度的向量也是可以相加和相乘的,乘法的规则和加法类似1,相同长度的向量相加> x<- 1
2023-06-14

r语言向量降序排列的方法是什么

R语言中可以使用`sort()`函数将向量进行升序排列,如果需要降序排列,可以使用`sort()`函数的参数`decreasing = TRUE`。以下是示例代码:```R# 创建一个向量vec # 将向量降序排列sorted_vec #
2023-09-11

加法、减法、乘法和除法运算符如何处理 MySQL 表中存储的日期值?

当我们尝试对表中存储的日期值进行此类操作时,MySQL 会将日期值假设为数字并执行算术运算。假设我们有一个名为“example”的表在“orderdate”列中有一个日期值,然后进行算术运算将澄清上述内容 -mysql> select *
2023-10-22

c语言中运算符的用法

c 语言运算符用于执行变量和常量的操作,包括算术(如加减乘除)、关系(如等于大于)、逻辑(如与或非)和位操作符(如左移右移)。不同类型的运算符具有不同的优先级,当多个运算符出现在同一表达式中时,优先级较高的运算符先执行。C 语言运算符的用法
c语言中运算符的用法
2024-04-29

加法、减法、乘法和除法运算符如何处理表示为 MySQL 字符串的日期?

此类计算可能会导致不可预测的结果,因为当日期表示为 MySQL 字符串时,MySQL 会尝试仅采用第一个出现的字符串来对字符串执行数字运算。以下示例将阐明它 -mysql> select 2017-10-17 + 20;+--------
2023-10-22

c语言中除法的运算规则是什么

在C语言中,除法运算的规则如下:整数除法:当两个操作数都是整数类型时,执行整数除法。结果将为整数部分的商,而不考虑小数部分。浮点数除法:当至少一个操作数为浮点数类型时,执行浮点数除法。结果将为精确的商,包括小数部分。如果除数为0,则除法运算
c语言中除法的运算规则是什么
2024-02-29

python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别有哪些

这篇文章主要介绍python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为了区分三种乘法运算的规则,具体分析如下:import nu
2023-06-14

Go语言中除法运算的效率怎么提高

本文小编为大家详细介绍“Go语言中除法运算的效率怎么提高”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go语言中除法运算的效率怎么提高”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。近年来,Go语言在程序员中的人
2023-07-06

C语言中+=运算符的含义与用法解析

+= 运算符用于将左操作数的值加上右操作数的值,并将结果赋值给左操作数,适用于数字类型且左操作数必须可写。C 语言中 += 运算符的含义与用法含义+= 运算符是一个复合赋值运算符,它的含义是将左操作数的值加上右操作数的值,然后将结果赋值
C语言中+=运算符的含义与用法解析
2024-04-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录