R语言 | 向量对象运算

news2025/1/19 7:12:07

目录

一、数值型的向量对象

1.1  建立规则型的数值向量对象使用序列符号

1.2 简单向量对象的运算

1.3 建立向量对象:seq()函数

1.4 连接向量对象:c()函数

1.5 重复向量对象:rep()函数

1.6 numeric()函数

1.7 程序语句短语跨行的处理

 二、常见向量对象的数学运算函数

2.1 常见运算

2.2 prod()函数

2.3 累积运算函数

2.4 差值运算函数

2.5 排序函数

2.6 计算向量对象长度的函数

2.7  基本统计函数

 三、Inf、-Inf、NA的向量运算

 四、R语言的字符串数据属性

 五、探索对象的属性

5.1 探索对象元素的属性

5.2 探索对象的结构

5.3 探索对象的数据类型

​六、向量对象元素的存取

6.1 使用索引取得向量对象的元素

 6.2 使用负索引挖掘向量对象内的部分元素

 6.3 修改向量对象元素值

 6.4 认识系统内建的数据集letters和LETTERS

 七、逻辑向量

7.1 基本应用

 7.2 Inf、-Inf和缺失值NA的处理

7.3 多组逻辑表达式的应用

 7.4 NOT表达式

 7.5 逻辑值TRUE和FALSE的运算

八、不同长度向量对象相乘的应用

九、向量对象的元素名称

9.1 建立简单含元素名称的向量对象

 9.2 names()函数

9.3 使用系统内建的数据集islands


一、数值型的向量对象

数值型的向量对象可分为规则型的数值向量对象或不规则型的数值向量对象。

1.1  建立规则型的数值向量对象使用序列符号

从起始值到最终值,每次递增1,如果是负值则每次增加-1。例如从1到5,可用1:5方式表达;从11到16,可用11:16表达。在“1:5”或“11:16”的表达式中的“:”符号,即冒号,在R语言中被称为序列符号。

1.2 简单向量对象的运算

向量对象的一个重要功能是向量对象在执行运算时,向量对象内的所有元素将同时执行运算。

一个向量也可以与另一个向量对象相加。

不同长度的向量对象相加,较长向量对象的长度是较短对象的长度的倍数。

 1.3 建立向量对象:seq()函数

seq()函数可用于建立一个规则型的数值向量对象,它的使用格式如下:

seq(from,to,by=width,length.out=numbers)

上述的from是数值向量对象的起始值,to是数值向量对象的最终值,by则指出每个元素的增值。如果省略by参数同时没有length.out参数存在,则增值是1或-1。length.out参数字段可设定seq()函数所建立的元素个数。

1.4 连接向量对象:c()函数

c()函数的c为concatenate的缩写。这个函数并不是一个建立向量对象的函数,只是一个将向量元素连接起来的函数。

c()函数可以将元素连接起来,其实也可以使用该函数将两个向量对象连接起来。

 1.5 重复向量对象:rep()函数

如果向量对象内某些元素是重复的,则可以使用rep()函数建立这种类型的向量对象,它的使用格式如下:

rep(x,times=重复次数,each=每次每个元素重复次数,length.out=向量长度)

如果rep()函数只含有x和times参数,则“times=”参数可省略。

1.6 numeric()函数

numeric()函数也是建立一个向量对象,主要用于建立一个固定长度的向量对象,同时向量对象元素的默认值是0。

1.7 程序语句短语跨行的处理

下面是几种可能发生跨行的状况。

(1)该行以数学符号(+、-、*、/)作为结尾,此时R语言的编译程序会知道下一行是接续此行的。

(2)使用左括号“(”,R语言编译器会知道在下一行出现的片断数据是同一括号内的命令,直至出现右括号")",才代表命令结束。

(3)字符串是指双引号之间的文字字符,在设定字符串时,如果有了第一个双引号,但尚未出现第二个双引号,R语言编辑器可以知道下一行出现的字符是属于同一字符串向量变量的数据,但此时换行符“/n”将被视为字符串的一部分。

 二、常见向量对象的数学运算函数

2.1 常见运算

sum():可计算所有元素的和。

max():可计算所有元素的最大值。

min():可计算所有元素的最小值。

mean():可计算所有元素的平均值。

 2.2 prod()函数

prod():计算所有元素的积。

 2.3 累积运算函数

cumsum():计算所有元素的累积和。

cumprod():计算所有元素的累积积。

cummax():可返回各元素从向量起点到该元素位置所有元素的最大值。

cummin():可返回各元素从向量起点到该元素位置所有元素的最小值。

2.4 差值运算函数

diff():返回各元素与下一个元素的差。

由于是返回每个元素与下一个元素的差值,所以结果向量对象会比原先向量对象少一个元素。

 

 2.5 排序函数

sort(x,decreaing=FALSE):默认是从小排到大,所以如果是从小排到大,则可以省略decreaing参数。如果设定“decreaing=TRUE",则是从大排到小。

rank():传回向量对象,这个向量对象的内容是原向量对象的各元素在原向量对象从小到大排序后,在所得向量对象中的次序

rev():这个函数可将向量对象颠倒排列。

 2.6 计算向量对象长度的函数

length():可计算向量对象的长度,也就是向量对象元素个数。

2.7  基本统计函数

sd():计算样本的标准差。

var():计算样本的方差。

 三、Inf、-Inf、NA的向量运算

任何整数或实数值与Inf相加,结果均是Inf。任何整数或实数值与-Inf相加,结果均是-Inf。

如果向量中的向量对象的参数包含NA,则运算结果是NA。

为了克服向量对象可能有缺失值NA的情形,通常在函数内加上”na.rm=TRUE"参数,这样函数碰上有向量对象的参数是NA时,也可以正常运算了。

特别需要注意的是,diff()函数与累计函数cummax()、cummin()相同,无法使用去掉缺失值NA的参数“na.rm=TRUE"。

 四、R语言的字符串数据属性

R语言的数据类型:

  • integer:整数。
  • double:R语言在处理实数运算时,预设是用双精度实数计算和存储。
  • character:字符串。

处理字符串向量对象与处理整数向量对象类似,可以使用c(0函数建立字符串向量,应特别留意字符串可以用双引号(" ")也可以用单引号(' ')。

length()函数也可以应用于字符串向量对象,由此了解向量对象的长度(即元素的个数)。

nchar()函数可用于列出字符串向量对象每一个元素的字符串。

 五、探索对象的属性

5.1 探索对象元素的属性

在R语言程序设计过程中,可能会有一时无法知道对象属性的情形,这时可以使用下列函数判断对象属性,判断结果如果是真则传回TRUE,否则传回FALSE。

is.integer():对象是否为整数。

is.numeric():对象是否为数字。

is.double():对象是否为双精度实数。

is.character():对象是是否为字符串。

 

5.2 探索对象的结构

str()函数用于探索对象的结构。对于向量对象而言,可由此了解对象的数据类型、长度和元素内容。

 

5.3 探索对象的数据类型

对于向量对象而言,可以使用class()函数,了解此对象的数据类型。

需特别留意,如果向量对象内的元素同时包含整数、实数、字符时,若使用class()判别它的数据类型,将返回“character”(字符)。

 六、向量对象元素的存取

6.1 使用索引取得向量对象的元素

R语言与C语言不同,它的索引值是从1开始的。

R语言的索引也可以是一个向量对象,这个向量对象可用c()函数建立起来。

我们也可以用已经建立好的向量对象当作索引取代。

 6.2 使用负索引挖掘向量对象内的部分元素

我们可以利用索引取得向量对象的元素,也可以利用索引取得向量对象内不含有特定索引所对应的部分元素,方法是使用负索引。

 6.3 修改向量对象元素值

当修改向量对象元素数据时,原始数据就没了,所以建议在修改前可以先建立一份备份。

 

 6.4 认识系统内建的数据集letters和LETTERS

以R语言系统内建的数据集letters和LETTERS为例,看看如何取得向量的部分元素或称取子集。

tail()函数的第一个参数数据集的对象名称,第二个参数是预计取得多少元素,如果省略第二个参数,系统自动返回6个元素。head()函数使用方式与tail()函数相同,是返回数据集的最前面的元素。

 

 七、逻辑向量

7.1 基本应用

R语言可以用比较两个值的方式返回逻辑值,如表所示:

表达式说明
x==y如果x等于y,则传回TRUE
x!=y如果x不等于y,则传回TRUE
x>y如果x大于y,则传回TRUE
x>=y如果x大于或等于y,则传回TRUE
x<y如果x小于y,则传回TRUE
x<=y如果x小于或等于y,则传回TRUE
x&y相当于AND运算,如果x和y皆是TRUE则传回TRUE
x|y相当于OR运算,如果X或y是TRUE则传回TRUE
!x相当于NOT运算,则传回非x
xor(x,y)相当于XOR运算,如果x和y不同,则传回TRUE

which()函数所使用的参数是一个比较表达式,可以列出符合条件的索引值,相当于可以找出向量对象中的哪些元素是符合条件的。

which.max():可列出最大值的第一个索引值

which.min():可列出最小值的第一个索引值

 7.2 Inf、-Inf和缺失值NA的处理

任何比较,对于NA而言均是返回NA 。

7.3 多组逻辑表达式的应用

 7.4 NOT表达式

 7.5 逻辑值TRUE和FALSE的运算

R语言和其他高级语言一样,可以将TRUE视为1,将FALSE视为0使用。

any()函数的用法是,只要参数向量对象有1个元素是TRUE,则传回TRUE。

all()函数的用法是,所有参数需是TRUE,才传回TRUE。

八、不同长度向量对象相乘的应用

不同长度的向量对象相乘的原则是,长的向量对象长度是短的向量对象长度的倍数。

 

九、向量对象的元素名称

9.1 建立简单含元素名称的向量对象

object<-c(name1=data1,name2=data2...)

 9.2 names()函数

使用names()函数可以查询向量对象元素的名称,也可更改向量元素的名称。

如果想要删除向量对象的元素名称,只要将其设为NULL即可。

9.3 使用系统内建的数据集islands

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/470278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阶段式软件研发项目管理工具

下面这个场景是是阶段式软件研发场景&#xff0c;适用于采用瀑布模式开展软件研发的企业或者团队。 创建项目 新建项目时&#xff0c;使用“阶段式软件开发项目”项目模板创建项目。 系统会自动创建10个阶段看板&#xff08;一个阶段一个看板&#xff09;&#xff0c;1个缺陷…

libgo 流程分析(1)

libgo 基础模块 libgo逻辑结构 libgo主要的功能模块主要包括&#xff1a;调度器( Scheduler )、处理器( Processer )、协程( Task )和一个FastSteadyClock。 其中 Scheduler -> Processer -> Task 三层逻辑结构实现了对协程( Task )的生命周期管理和调度和运行。 sch…

【好书分享】数字信号处理入门宝典(Digital Signal Processing-A Student Guide)

简介 该书作为初学者的入门书籍&#xff0c;葵花宝典级的存在&#xff0c;发行量很少&#xff0c;在市面上很难见到&#xff0c;仅此一本&#xff0c;想要的私信&#xff01; Digital signal processing (DSP) systems have developed at a rapid pace over the past two dec…

基于DSP+FPGA+ADS1282支持31Bit高精度数据采集方案(二)模拟电路设计

如图 4.1 所示是系统硬件系统的信号框图&#xff0c;数字信号处理板上的主要核心是 两个处理芯片&#xff0c;即 FPGA 和 DSP &#xff0c;其中 FPGA 主要作用是做 DSP 和外围接口的 桥梁及数据预处理&#xff0c; DSP 做为数据解算核心。 FPGA 通过各种的数据总…

AJAX和JSON

1、什么是AJAX? AJAX&#xff08;ASynchronous JavaScript And XML&#xff09;异步的JavaScript 和 XML&#xff1b; 由Jesse James Garrett 在他的文章AJAX&#xff1a;A New Approoch to Web Applications中首次提出。 ajax&#xff08;Web数据交互方式&#xff09;_百…

[深度学习][CenterFusion]关于centerfusion训练注意的要点

我参考博客CenterFusion 项目超详细环境搭建步骤及可视化操作_centernet可视化_上班摸不了鱼的博客-CSDN博客本文引用 CenterFusion: Center-based Radar and Camera Fusion for 3D Object Detection&#xff0c;复现此论文中的代码&#xff0c;互相学习。注意&#xff1a;由于…

电影元素主题:《黑客帝国》中的js加密与解密

在《黑客帝国》中&#xff0c;加密和解密是非常重要的概念。加密是将信息转换为看起来毫无意义的数据&#xff0c;以确保只有拥有解密密钥的人才能读取和理解它。在这篇文章中&#xff0c;我们将探讨如何使用JavaScript进行加密和解密&#xff0c;就像黑客们在电影中所做的那样…

2023-04-27:用go语言重写ffmpeg的remuxing.c示例。

2023-04-27&#xff1a;用go语言重写ffmpeg的remuxing.c示例。 答案2023-04-27&#xff1a; ffmpeg的remuxing.c是一个用于将多媒体文件从一种容器格式转换为另一种容器格式的命令行工具。它可以将音频、视频和字幕等元素从源文件中提取出来&#xff0c;并按照用户指定的方式…

Windows 11 本地 php 开发环境搭建:PHP + Apache + MySQL +VSCode 安装和环境配置

目录 前言1. PHP 的下载、安装和配置1.1 下载 php1.2 安装 php1.3 配置 php 系统变量1.4 配置 php.ini 2. Apache 的下载、安装和配置2.1 下载 Apache2.2 安装 Apache2.3 修改配置 Apache2.4 指定服务端口&#xff08;非必须&#xff09;2.5 配置系统变量2.6 安装服务2.7 启动服…

在Docker上部署SpringBoot项目(纯步骤)

在Docker上部署SpringBoot项目 在学习中发现了部署的时候总是有各种问题,此文章只有操作步骤没有原理解释,只是用来提醒自己部署步骤 部署总共可以分为五步&#xff01; 第一步&#xff1a;将SpringBoot项目打包成jar包 这里使用idea的上maven选项打包&#xff0c;点一下就行。…

seata 1.4.2 安装部署(Linux环境)

Linux安装部署 seata server 1.4.2 下载安装包上传至服务器 1.首先从GitHub拉取seata压缩包 https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip 下载到本地后上传至服务器 或使用命令拉取 wget https://github.com/seata/seata/release…

java调用百度的接口获取起-止位置的距离

需求:校验收货地址是否超出配送范围 重要: 做该需求的思路就是通过卖家和卖家具体的地址信息,来获取到二者的经纬度, 此时可以使用百度的 "地理编码服务",即可获取对应的经纬度 第二步,就是通过二者的经纬度,按照百度接口的要求,发送,即可获取到包含二者距离的JSON串…

SQL Father - 模拟数据生成器(后端)

SQL Father - 模拟数据生成器&#xff08;后端&#xff09; SQL 之父项目&#xff1a;快速生成 SQL 和模拟数据&#xff0c;大幅提高开发测试效率&#xff01; 前后端全栈项目 By 程序员鱼皮 制作不易&#xff0c;请勿商用和二次售卖&#xff01;&#xff01;&#xff01; 在线…

HAProxy搭建web集群

目录 一、HAProxy简介1.Haproxy应用分析2.HAProxy的主要特性3.HAProxy常用的负载均衡策略4.LVS、Nginx、HAproxy的区别 二、Haproxy搭建 Web 群集1.haproxy 服务器部署2.编译安装 Haproxy3.Haproxy服务器配置4.添加haproxy 系统服务5.节点服务器部署6.启动haproxy服务7.日志定义…

在KylinV10安装DM8、卸载DM8

前言 因为近期&#xff0c;业外和几个朋友想搞点有趣的项目玩玩&#xff0c;既然不以盈利为主&#xff0c;就> 主推国产化&#xff0c;所以这篇记录一下&#xff0c;我在KylinV10安装dm8.写的博客可能有所披露&#xff0c;希望指正。 注意 dm8试用版只有一年试用期&#xff…

10个你从未想过的 ChatGPT 有趣用途

这篇文章向我们展示了ChatGPT的有趣用途&#xff0c;如创作独特的故事、写作协助、模拟对话和游戏等。这些应用展示了ChatGPT的强大功能和灵活性。通过这些有趣的例子&#xff0c;我们可以看到ChatGPT作为一种人工智能技术在生活中的实际应用和潜力。无论是娱乐还是实用&#x…

基于matlab的长短期神经网络lstm的股票预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的股票预测 MATALB编程实现&#xff0c;附有代码&#xff0c;及链接基于matlab编程的的长短期神经网络LSTM的股票价格的预测&#xff0c;基于深度学习神经网络的股票价格预测-深度学习文档类资源-CSDN文库…

基于SpringBoot的线上日志阅读器

软件特点 部署后能通过浏览器查看线上日志。支持Linux、Windows服务器。采用随机读取的方式&#xff0c;支持大文件的读取。支持实时打印新增的日志&#xff08;类终端&#xff09;。支持日志搜索。 使用手册 基本页面 配置路径 配置日志所在的目录&#xff0c;配置后按回车…

new和delete相关知识点

new和delete基本介绍 malloc 和free 是C函数 new和delete是C的运算符 malloc失败是通过返回值和nullptr作比较&#xff1b;而new开辟内存失败&#xff0c;是通过抛出bad_alloc类型的异常来判断的 new不仅可以做内存开辟&#xff0c;还可以做内存初始化操作 malloc和new的区…

一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程

文章目录 一、MyBatis简介1.1 MyBatis历史1.2 MyBatis特性1.3 和其它持久化层技术对比1.4 Mybatis下载依赖包流程 一、MyBatis简介 1.1 MyBatis历史 ​ MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。随着开…