R语言基础(三):运算

news2024/11/15 10:48:24

接前文
R语言基础(一):注释、变量
R语言基础(二):常用函数

4.运算

4.1 数学运算

R语言中支持加减乘除四则运算、乘方运算、求余数(取模)运算:

符号含义示例
+加法1+1 结果是2
-减法2-1 结果是1
*乘法4*5 结果是20
/除法4/5 结果是0.8
%/%整除(只要商的整数部分,不四舍五入)4%/5% 结果是0
9%/%5 结果是1
%%求余数(取模)7%%5 结果是2
^乘方(幂运算)3^2 结果是9
()括号(英文的和数学规则一样,先计算括号里的)
> 1+1
[1] 2
> 2-1
[1] 1
> 4*5
[1] 20
> 4/5
[1] 0.8
> 4%/%5
[1] 0
> 9%/%5
[1] 1
> 7%/%5
[1] 2
> 3^2
[1] 9

由数字、运算符、变量等组成,能求得数值的有意义的排列,在程序中叫做表达式

比如1+1就是一个算数表达式。

4.2 关系运算

关系运算中的关系,指的是:

大于>、小于<、等于==、大于等于>=、小于等于<=、不等于!=

特殊说明的是在R语言中(其实其它语言中也是如此):

判断相等是两个等号==,而不是一个等号

大于等于>=、小于等于<=、不等于!=和等于==都是有两个符号组成的,中间是不能有空格的。

关系运算的结果只有两个值TRUEFALSE(全大写),TRUE表示真,FALSE表示假。

> 1>=2   #因为1小于2,所以结果是FALSE
[1] FALSE
> 1>2
[1] FALSE
> 1==1   #注意是两个等号,不是一个
[1] TRUE
> 1<=2
[1] TRUE

1>2这种比较大小关系的表达式也叫做逻辑表达式(或布尔表达式),逻辑表达式的结果只有真和假,即TRUE(真)和FALSE(假)。

4.3 逻辑运算

逻辑运算包含“与、或、非”三种。逻辑运算的结果只有TRUE和FALSE,可以简写成T和F。

与运算&&&:同真为真,有假即假。只有T&T结果为真,其它情况都是假。

或运算|||:有真即真,全假为假。只有F|F结果为假,其它情况结果都是真。

非运算:!T结果是F,!F结果是T

值得注意的是,在R语言中,数字0参与逻辑运算时表示F,任何不等于0的数字都表示T。

> T&T
[1] TRUE
> T&F
[1] FALSE
> T|F
[1] TRUE
> F|F
[1] FALSE
> 0&1
[1] FALSE
> 2&1
[1] TRUE
> 0|1
[1] TRUE
> -1&2
[1] TRUE
> !T
[1] FALSE
> !F
[1] TRUE

&&&的区别、|||的区别会在后面讲到。

4.4 赋值运算

R语言变量赋值有三种方式:

左箭头<-、等号=、右箭头->

语法如下:

使用左箭头:变量<-值

使用等号:变量=值

使用右箭头:值->变量

x<-10
x=20
30->x

ps:在有编程基础的人看来,我们习惯用x=20这种等号赋值,但是在数学工作者眼中,等号不是一个好的赋值运算符,比如下面的代码:

x=20
x=x-1

在编程者眼中:

第一步运算是设置x的值是20,

第二步是把x-1的值赋值给x,也就是x=20-1,最后x的值是19

而在数学工作者或者编程小白眼中,x=x-1这种操作会让人发疯,因为他们习惯把等号两边的x约掉:

在这里插入图片描述

然而这是不对的。。。所以要不断提醒自己,这是程序表达式,不是数学方程。

早期版本的R语言中,只有箭头赋值,没有等号赋值,等号赋值是在1.4.0版本之后才可以用于赋值的,为了和其它语言保持一致。但“=”和“<-”还是有区别的,后面会介绍。

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

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

相关文章

MySQL 事务隔离

MySQL 事务隔离事务隔离实现事务的启动ACID : 原子(Atomicity)、一致(Consistency)、隔离(Isolation)、永久(Durability) 多个事务可能出现问题 : 脏读 (dirty read) , 不可重复读 (non-repeatable read) , 幻读 (phantom read) 事务隔离级别 : 读未提交 (read uncommitted)…

一篇学习ES

文章目录ES简介1.什么是ElasticSearch2.ElasticSearch的使用案例3.ElasticSearch对比SolrElasticSearch环境搭建1. 下载ES压缩包2. 安装ES服务3. 启动ES服务3. 安装ES的图形化界面插件ES术语1.概述2.索引 index3.类型 type4.字段Field5.映射 mapping6.文档 document7. 接近实时…

制造业数字化转型要注重哪些方面?

近年来&#xff0c;制造业企业数字化转型的话题一直处于行业高热位置。中央经济工作会议作出“大力发展数字经济”的部署&#xff0c;工信部提出要深化产业数字化转型&#xff0c;建设一批全球领先的智能工厂、智慧供应链&#xff0c;并向中小企业场景化、标准化复制推广。 随…

监控体系划分

按采集类型划分 1.基于 Metrics 的监控 基于 Metrics 的监控&#xff0c;背后对应的是度量&#xff08;指标监控&#xff09;系统&#xff0c;监控机器在某段时间内的 CPU 使用率、系统负载&#xff1b; HTTP 请求访问量等。 1.Skywalking 开源地址 &#xff08;既能做调用链监…

Spring-AOP简介案例

Spring-AOP简介&案例 1&#xff0c;AOP简介 Spring有两个核心的概念&#xff0c;一个是IOC/DI&#xff0c;一个是AOP。 对于AOP,我们前面提过一句话是:AOP是在不改原有代码的前提下对其进行增强。 1.1 什么是AOP? AOP(Aspect Oriented Programming)面向切面编程&…

java Spring5 xml配置文件方式实现声明式事务

在java Spring5通过声明式事务(注解方式)完成一个简单的事务操作中 我们通过注解方式完成了一个事务操作 那么 下面 我还是讲一下 基于xml实现声明式事务的操作 其实在开发过程中 大家肯定都喜欢用注解 因为他方便 这篇文章中的xml方式 大家做个了解就好 还是 我们的这张表 记…

ECharts数据可视化--常用图表类型

目录 一.柱状图 1.基本柱状图 1.1最简单的柱状图 ​编辑 1.2多系列柱状图 1.3柱状图的样式 &#xff08;1&#xff09;柱条样式 &#xff08;2&#xff09;柱条的宽度和高度 &#xff08;3&#xff09;柱条间距 &#xff08;4&#xff09;为柱条添加背景颜色 ​编辑 2.堆…

SpringBoot创建和使用

目录 什么是SpringBoot SpringBoot的优点 SpringBoot项目的创建 1、使用idea创建 2、项目目录介绍和运行 Spring Boot配置文件 1、配置文件 2、配置文件的格式 3、properties 3.1、properties基本语法 3.2、读取配置文件 3.3、缺点 4、yml 4.1、优点 4.2、yml基本…

虚拟机下Linux系统磁盘扩容

在VM虚拟机中&#xff0c;我们经常会选择默认磁盘大小20G&#xff0c;用着用着才发现20G不够用&#xff0c;服务启动不了&#xff0c;就很尴尬&#xff0c;让我们今天一起来学习下&#xff0c;如何在虚拟机给磁盘扩容。一&#xff1a;关闭虚拟机&#xff0c;添加硬盘背景&#…

mysql Docker容器的安装(centos版)以及修改docker默认端口、解决1251问题

文章目录一、Docker的安装以及在Docker下进行mysql的安装1、安装Docker2、上传安装包并进行安装并启动docker3、 配置Docker的镜像加速器&#xff0c;这里使用阿里云的镜像4、刷新守护进程&#xff0c;并重启docker&#xff0c;检验镜像是否配置成功5、搜索并下载mysql镜像6、导…

超分扩散模型 SR3 可以做图像去雨、去雾等恢复任务吗?

文章目录前言代码及原文链接主要的点如何进行图像恢复前言 关于扩散模型以及条件扩散模型的介绍&#xff0c;大家可以前往我的上一篇博客&#xff1a;扩散模型diffusion model用于图像恢复任务详细原理 (去雨&#xff0c;去雾等皆可)&#xff0c;附实现代码。 SR3是利用扩散模…

优化Facebook广告ROI的数据驱动方法:从投放到运营

“投放广告并不是最终的目的&#xff0c;关键在于如何最大程度地利用数据驱动的方法来提高广告投放的回报率&#xff08;ROI&#xff09;”Facebook广告是现代数字营销中最为常见和重要的广告形式之一。但是&#xff0c;要让Facebook广告真正发挥作用&#xff0c;需要通过数据驱…

Allegro如何自动添加测试点操作指导

Allegro如何自动添加测试点操作指导 在做PCB设计的时候,在一些应用场合下需要给PCB上的网络添加测试点,如下图 测试点除了可以手动逐个添加之外,Allegro还支持自动添加测试点,具体操作如下 点击Manufacture点击Testprep

PlantUML画出如女神漂亮的流程图

一&#xff1a;环境准备 1&#xff0c;本地安装好vscode 2&#xff0c;vscode安装PlantUML插件 3&#xff0c;本地安装java环境&#xff0c;我本地用的是jdk-11.0.178&#xff0c;配置好环境变量 4&#xff0c;在vscode上新建一个文件以wsd结尾&#xff0c;输入以下两行&#x…

Go语言容器之数组和切片

Go语言的容器分为值类型和引用数据类型 一、数组 1.数组的声明和初始化 (1) 数组声明的语法 var 数组变量名 [数组大小]数组类型 举例&#xff1a; package main import "fmt"func main(){//数组的声明var arr[10]int//打印数组长度fmt.Println("arr的长度为…

《Java高并发核心编程. 卷1, NIO、Netty、Redis、ZooKeeper》 读书笔记

第2章 高并发IO的底层原理 2.1 IO读写的基本原理 为了避免用户进程直接操作内核&#xff0c;保证内核安全&#xff0c;操作系统将内存&#xff08;虚拟内存&#xff09;划分为两部分&#xff1a;一部分是内核空间&#xff08;Kernel-Space&#xff09;&#xff0c;另一部分…

Ubantu docker学习笔记(二)拉取构建,属于你的容器

文章目录一、拉取启动容器二、本地镜像初解三、构建镜像3.1使用docker commit构建镜像切换阿里镜像3.2使用dockerfile构建镜像四、总个结吧这里的话&#xff0c;就详细说说小唐对于容器的配置&#xff0c;对了&#xff01;小唐参考的书籍是Linux容器云实战&#xff01;&#xf…

做更好的自己!NAS部署wiki.js现代化知识管理工具,让知识上云!

知识管理是一个永恒的课题&#xff0c;各种方法、工具层出不穷。老Q这么多年也体验过了非常多的工具&#xff0c;这几年来&#xff0c;老Q使用的工具逐步从付费迁移到开源&#xff0c;从公有云迁移到私有云。前者是为了折&#xff08;SHENG&#xff09;腾 &#xff08;QIAN&…

红黑树的介绍和实现

文章目录1. 红黑树1.1 红黑树的概念1.2 红黑树的性质1.3 红黑树节点的定义1.4 红黑树的插入1.5 红黑树的验证1.6 红黑树与AVL树的比较1. 红黑树 1.1 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以…

linux 内存泄露检测工具-Valgrind的使用

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。安装,我是先valgrind一下发现这个的版本apt install valgrind # version 1:3.15.0-1ubuntu9.1新建一个项目与添加一个main.c编辑main.c的代码:#include <stdio.h> /*标准输入输出定义*/ #incl…