RStudio学习笔记(二):向量

        在R语言中,向量类似于数学上的集合概念,由一个或多个元素构成。指用于存储数值型、字符型、逻辑型数据的一维数组。

1、向量的创建

# R语言中向量的创建可以通过函数c()x <- c(1,2,3,4,5)						
# 存储数值型y <- c("one","two","three")				
# 存储字符型,需要加引号,否则会认为是变量或是其他然后进行全局搜索,搜索不到会报错z <- c(TRUE ,T,F)					
# 存储逻辑型,可以全称or缩写,不需要加引号,不能首字母大写的格式(会被当成字符串)x0 <- c(1,2,3,"4","5")					
# 会输出为字符型,"1","2","3","4","5",因为只有同一类型的数据才能运算

2、等差数列的创建

c(1:100)   
# seq(from=1,to=100)
# 建立从1到100的等差数列		seq(from=1,to=100,by=2)				
# 从1到100,差值为2seq(from=1,to=100,length.out=10)		
# 输出从1到100的十个值

3、重复

rep(2,3)							
# 将数值2重复3次rep(x,3)							
# 将向量x重复3次,其中,x <- c(1,2,3)
# 输出为 1 2 3 1 2 3 1 2 3rep(x,each=3,times=2)				
# 将向量x重复3次,向量中每部分连续重复3次后,再开始重复下一个,上述操作重复两次
# 输出为 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3rep(x,c(1,2,3))						
# 将向量x中的各元素按照1次、2次、3次的次数进行重复
# 输出为 1 2 2 3 3 3

4、向量元素

length(x)							
# 返回向量x的元素个数x[1]								
# 返回向量x的第一个元素,R语言中的第一个元素从1开始,不是从0开始x[-1]								
# 返回向量x中的除了第一个元素外的所有元素x[c(4:19)]							
# 返回向量x中第四个到第十九个元素x[c(1,1,23,23,49,49,25)]				
# 按照输入的元素位置返回向量中的对应元素,可以重复,可以不按顺序

注意:利用索引值时不可以正负同时输入,会产生矛盾

# 可以通过逻辑值对向量元素进行选取
# TRUE可以表示输出这个值,FALSE可以表示不输出
# 假设有数值型向量y <- c(1:10),字符型向量z <- c("one","two","three","four","five")y[c(T,F,T,F,T,F,T,F,T,F)]					
# 输出对应位置为T的值:1 3 5 7 9y[c(T)]							
# 输出所有值:1  2  3  4  5  6  7  8  9 10y[c(F)]							
# 一个值不输出:integer(0),表示没有值y[c(T,F)]							
# 按顺序一个输出,一个不输出:1 3 5 7 9y[c(T,T,F)]							
# 按顺序,每输出两个,一个不输出:1  2  4  5  7  8 10y[c(T,F,T,F,T,F,T,F,T,F,T)]				
# 输入十一个逻辑值,会有缺失值:	1  3  5  7  9 NA,表示第十一个值为缺失值y[y>5 & y<9]						
# 输出y的元素值大于5且小于9的元素值:6 7 8"one" %in% z						
# 判断向量z中是否有"one"这个元素,有,返回:TRUEz["one" %in% z]						
# 由上一个可知,该句等同于z[c(T)],即返回全部:"one"   "two"   "three" "four"  "five" z %in% c("one","two")				
# 判断向量z是否在["one","two"]中,只有前两个在,返回:TRUE  TRUE FALSE FALSE FALSE 

关于向量内元素值也可以进行命名、添加等操作

# 假设有数值型向量y <- c(1:10),字符型向量z <- c("one","two","three","four","five")names(y) <- z						
# 为向量y的每个元素命名,返回两行值,第一行是名称,第二行是元素值
# 因为z的元素个数少于y,所以y的后五个元素的第一行为NA表示缺失y <- unname(y)						
# 去除命名,y只输出元素值一行y["one"]							
# 通过名称返回y中的元素值,返回两行值,第一行是名称,第二行是元素值y[11] <-11							
# 给y在第11个元素位添加元素11y[c(11:13)] <- c(11,12,13)				
# 给y在第11,12,13个元素位添加元素11,12,13y[20] <-20							
# 给y在第20个元素位添加元素20,但是第11到19的元素均为NA,缺失rm(y)								
# 删除向量y,再次输入y显示找不到对象'y'append(x = y,values = 99,after = 5)		
# 在 向量y 的 第五 元素后添加值为 99 的元素:1  2  3  4  5 99  6  7  8  9 10。
# 若after = 0 	则表示在第一位添加y <- y[-c(1:3)]						
# 通过重新赋值的方法删除向量y的前三元素,通过新变量进行替换:4  5  6  7  8  9 10

5、向量的运算

        向量的数值运算,若两个向量元素个数相等则对应计算。
        若不等且长的向量元素个数 是 短向量元素个数的整数倍,则较短的向量循环重复使用其中的元素,比如长的10个元素,短的2个元素。
        若不等且长的向量元素个数 不是 短向量元素个数的整数倍,则报错向量不匹配,比如长的10个元素,短的3个元素。

x+y								# 对应位元素相加
x*y								# 对应位元素相乘
x**y							# 对应位元素幂次运算,x^y
y%%x							# 对应位元素取余运算			
y%/%x							# 对应位元素整除运算# 逻辑运算
x>5								# 每个位置与5进行大小比较,返回TRUE或者FALSE
x>y								# 向量x和y的对应元素一一比对大小,返回TRUE或者FALSE
x==y							# 向量x和y的对应元素一一比对是否相等,返回TRUE或者FALSE
c(1,2,3) %in% c(1,2,2,4,5)				
# 查看左边向量中的元素是否在右边向量中存在:TRUE  TRUE FALSEceiling(c(-2.3,3.14))				# 返回不小于设置参数的最小整数:-2  4
floor(c(-2.3,3.14))					# 返回不大于设置参数的最小整数:-3  3
trunc(c(-2.3,3.14))					# 返回设置参数的整数部分:  	 -2  3
round(c(-2.3,3.14))					# 返回设置参数四舍五入的结果:  -2  3
round(c(-2.3,3.14),digits = 2)		# 返回设置参数四舍五入的结果,保留两位小数:-2.30  3.14
signif(c(-2.3,3.14),digits = 2)		# 返回设置参数的有效位数为2位的结果:		-2.30  3.14

6、索引值的获取

# 假设数值型向量t <- c(1,4,9,5,6,7)			
# 1 4 9 5 6 7which.max(t)						# 返回向量t中最大元素值的索引值:3
which.min(t)						# 返回向量t中最小元素值的索引值:1
which(t == 7)						# 返回向量t中元素值=7的索引值:  6
which(t > 5)						# 返回向量t中元素值大于5的索引值:3 5 6

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

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

相关文章

shopify入门教程-应用开发(二)

4.内网穿透 为什么要用这个&#xff0c;就是把电脑上的开发内容通过内网穿透显示到你的开发店铺上。这里的内网穿透我用了ngrok,花生壳&#xff0c;但都不如shopify官方推荐的cloudflare好用。所以这里我也推荐cloudflare。 运用内网穿透2个步骤 把app运行起来 ​​​​​​​…

YOLO网络结构特点收录

YOLO网络结构特点收录 YOLO&#xff08;You Only Look Once&#xff09;网络结构随着版本迭代不断进化&#xff0c;以下是一些关键版本的网络结构特点概述&#xff1a; YOLOv1 输入&#xff1a;将图像调整至固定尺寸&#xff0c;如448x448像素。骨干网络&#xff1a;初期版本…

java TCP服务器与客户端通信示例

目录 背景: TCP服务代码解析: TCP服务器的代码: 服务器程序的工作流程: TCP客户端代码解析 : TCP客户端代码: 客户端工作流程: 总结: 背景: 如何使用Java编程语言实现一个简单的TCP服务器和客户端。那么TCP是什么?TCP&#xff08;Transmission Control Protocol&…

RocketMQ源码学习笔记:Broker接受消息和发送消息

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、Overview2、技术亮点2.1、消息写入时的自旋锁和可重入锁2.2、堆外内存机制2.2.1、Overview2.2.2、源码2.2.2.1、开启堆外内存的条件2.2.2.2、堆外内存的初始化2.2.2.3、写消息到堆外内存2…

MAS0902量产工具分享,MAS0902A开卡教程,MAS0901量产工具下载

MAS0902和MAS1102都是基于SATA3.2技术开发的DRAM-less SSD控制芯片&#xff0c;简单来说就是SATA协议无缓存主控。下面是我摸索的麦光黑金300 240G SSD开卡修复简易教程&#xff0c;也就是MAS0902量产过程&#xff1a; 注意&#xff1a;开卡转接线必须要用ASM1153E或JMS578主控…

(1)std::trhead的回调,中频繁发送信号,会导致qt的事件循环处理不过来吗

在Qt中,事件循环是负责处理所有事件和信号的核心机制。事件循环会不断地检查是否有待处理的事件,并且调度相应的事件处理器。在标准模板库(STL)的std::thread中使用回调函数来频繁发送信号到Qt的事件循环中,确实可能会导致性能问题,尤其是在高频率信号发送的情况下。 当…

鉴权开发框架Django REST framework的应用场景

目录 一、鉴权开发框架介绍二、Django REST framework是什么三、如何实现认证、权限与限流功能四、Django REST framework的应用场景 一、鉴权开发框架介绍 鉴权开发框架是一种用于实现身份验证和授权的软件开发工具。它可以帮助开发者快速构建安全、可靠的身份验证和授权系统…

24级中国科学技术大学843信号与系统考研分数线,中科大843初复试科目,参考书,大纲,真题,苏医工生医电子信息与通信工程。

(上岸难度&#xff1a;★★★★☆&#xff0c;考试大纲、真题、经验帖等考研资讯和资源加群960507167/博睿泽电子信息通信考研咨询&#xff1a;34342183) 一、专业目录及考情分析 说明: ①复试成绩:满分100分。上机满分50分&#xff0c;面试满分150分&#xff0c;复试成绩(上机…

ros1仿真导航机器人 基础传感器数据读取

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1 仿真环境 gazebo、rviz、ros1 2 机器人模型 <?xml version"1.0"?> <robot name"wpb_home_gazebo"><link name"base_footprint"><visual><origin …

C++进阶

C进阶 一、细节1.cout与输出缓冲区2.constexpr3.NULL和nullptr是不同的类型4.关于inline5.函数杂合用法6.const char*、char const*、char * const7.进程地址空间&#xff0c;所谓静态区常量区不准8.位运算9.多态9.1 内存切片9.2 转型9.3 构造函数和析构函数里是静态绑定9.4 dy…

【云服务-3】公网IP和私有IP

IP地址的作用&#xff1f; IP地址的作用: 标识设备身份: IP地址能够唯一标识网络上的每一个设备,就像是设备的"身份证"。路由寻址: IP地址可以用于确定数据包的传输路径,从而将数据包准确送达目的地。网络互连: IP地址允许不同网络之间的设备进行通信和数据交换。 …

DP:解决路径问题

文章目录 二维DP模型如何解决路径问题有关路径问题的几个问题1.不同路径2.不同路径Ⅱ3.下降路径最小和4.珠宝的最高价值5.地下城游戏 总结 二维DP模型 二维动态规划&#xff08;DP&#xff09;模型是一种通过引入两个维度的状态和转移方程来解决复杂问题的技术。它在许多优化和…

docker容器内为什么能解析宿主机的hosts文件

Docker容器可以通过特定的网络设置来解析宿主机的hosts文件&#xff0c;这是因为Docker容器在创建网络时&#xff0c;会自动将宿主机的DNS配置信息传递给容器。 当你启动一个Docker容器时&#xff0c;如果没有指定任何DNS相关的选项&#xff0c;Docker默认会使用宿主机的DNS配…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS MessageQueue

CMSIS 2.0接口中的消息&#xff08;Message&#xff09;功能主要涉及到实时操作系统&#xff08;RTOS&#xff09;中的线程间通信。在CMSIS 2.0标准中&#xff0c;消息通常是通过消息队列&#xff08;MessageQueue&#xff09;来进行处理的&#xff0c;以实现不同线程之间的信息…

JS逆向:由 words 、sigBytes 引发的一系列思考与实践

【作者主页】&#xff1a;小鱼神1024 【擅长领域】&#xff1a;JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 在做JS逆向时&#xff0c;你是否经常看到 words 和 sigBytes 这两个属性呢&#xff0c;比如&#xff…

【机器学习300问】135、决策树算法ID3的局限性在哪儿?C4.5算法做出了怎样的改进?

ID3算法是一种用于创建决策树的机器学习算法&#xff0c;该算法基于信息论中的信息增益概念来选择最优属性进行划分。信息增益是原始数据集熵与划分后数据集熵的差值&#xff0c;熵越小表示数据集的纯度越高。有关ID3算法的详细步骤和算法公式在我之前的文章中谈到&#xff0c;…

探索 Electron:将 Web 技术带入桌面应用

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

关于Java依赖版本升级的相关问题解决(持续更新)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

VMware Workstation 安装 Centos 虚拟机

1. 下载 VMware Workstation 直接上网找官网下载即可 2. 下载 Centos 镜像 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 3.打开 VMware 创建虚拟机 3.1点击创建虚拟机 3.2 选择自定义安装 3.3 选择使用 Workstation 的版本 版本越高兼容性越低但性能越好&#xff0c;一…

Linux磁盘分区方案

如下&#xff1a; /boot 分区&#xff1a;存放Linux系统启动有关程序&#xff0c;建议大小100MB。 /usr 分区&#xff1a;存放Linux系统中的应用程序&#xff0c;数据较多&#xff0c;建议大于3GB。 /var 分区&#xff1a;存放Linux系统中经常变化的数据及日志文件&#xff0c…