首页 > 其他分享 >R 语言学习教程,从入门到精通,R 基础运算(5)

R 语言学习教程,从入门到精通,R 基础运算(5)

时间:2024-08-10 21:57:01浏览次数:18  
标签:教程 FALSE 入门 函数 精通 运算符 print TRUE 赋值

1、R 基础运算

本章介绍 R 语言的简单运算。

1.1、赋值

一般语言的赋值是 = 号,但是 R 语言是数学语言,所以赋值符号与我们数学书上的伪代码很相似,是一个左箭头 <- :

a <- 123
b <- 456
print(a + b)

以上代码执行结果:

[1] 579

这个赋值符号是 R 语言的一个形式上的优点和操作上的缺点:形式上更适合数学工作者,毕竟不是所有的数学工作者都习惯于使用 = 作为赋值符号。
操作上来讲,< 符号和 - 符号都不是很好打的字符,这会让很多程序员不适应。因此,R 语言的比较新的版本也支持 = 作为赋值符:

a = 123
b = 456
print(a + b)

这也是合法的 R 程序。
注意:很难考证从 R 的哪个版本开始支持了 = 赋值,但是本教程习用的 R 版本是 4.0.0。

1.2、数学运算符

下表列出了主要的数学运算符以及他们的运算顺序:
在这里插入图片描述
以下示例演示了简单的数学运算:

> 1 + 2 * 3
[1] 7
> (1 + 2) * 3
[1] 9
> 3 / 4
[1] 0.75
> 3.4 - 1.2
[1] 2.2
> 1 - 4 * 0.5^3
[1] 0.5
> 8 / 3 %% 2
[1] 8
> 8 / 4 %% 2
[1] Inf
> 3 %% 2^2
[1] 3
> 10 / 3 %/% 2
[1] 10

1.3、关系运算符

下表列出了 R 语言支持的关系运算符,关系运算符比较两个向量,将第一向量与第二向量的每个元素进行比较,结果返回一个布尔值。
在这里插入图片描述

v <- c(2,4,6,9)
t <- c(1,4,7,9)
print(v>t)
print(v < t)
print(v == t)
print(v!=t)
print(v>=t)
print(v<=t)

执行以上代码输出结果为:

[1]  TRUE FALSE FALSE FALSE
[1] FALSE FALSE  TRUE FALSE
[1] FALSE  TRUE FALSE  TRUE
[1]  TRUE FALSE  TRUE FALSE
[1]  TRUE  TRUE FALSE  TRUE
[1] FALSE  TRUE  TRUE  TRUE

1.4、逻辑运算符

下表列出了 R 语言支持的逻辑运算符,可用于数字、逻辑和复数类型的向量。
大于 1 的数字都为 TRUE。
逻辑运算符比较两个向量,将第一向量与第二向量的每个元素进行比较,结果返回一个布尔值。
在这里插入图片描述

v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)
print(v|t)
print(!v)

# &&、||只对第一个元素进行比较
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)

v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

执行以上代码输出结果为:

[1]  TRUE  TRUE FALSE  TRUE
[1] TRUE TRUE TRUE TRUE
[1] FALSE FALSE FALSE FALSE
[1] TRUE
[1] FALSE

1.5、赋值运算符

R 语言变量可以使用向左,向右或等于操作符来赋值。
下表列出了 R 语言支持的赋值运算符。
在这里插入图片描述

# 向左赋值
v1 <- c(3,1,TRUE,"nhooo")
v2 <<- c(3,1,TRUE,"nhooo")
v3 = c(3,1,TRUE,"nhooo")
print(v1)
print(v2)
print(v3)

# 向右赋值
c(3,1,TRUE,"nhooo") -> v1
c(3,1,TRUE,"nhooo") ->> v2 
print(v1)
print(v2)

执行以上代码输出结果为:

[1] "3"      "1"      "TRUE"   "nhooo"
[1] "3"      "1"      "TRUE"   "nhooo"
[1] "3"      "1"      "TRUE"   "nhooo"
[1] "3"      "1"      "TRUE"   "nhooo"
[1] "3"      "1"      "TRUE"   "nhooo"

1.6、其他运算符

R 语言还包含了一些特别的运算符。
在这里插入图片描述

# 1 到 10 的向量
v <- 1:10
print(v) 

# 判断数字是否在向量 v 中
v1 <- 3
v2 <- 15
print(v1 %in% v) 
print(v2 %in% v) 

# 矩阵与它转置的矩阵相乘
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

执行以上代码输出结果为:

[1]  1  2  3  4  5  6  7  8  9 10
[1] TRUE
[1] FALSE
     [,1] [,2]
[1,]   65   82
[2,]   82  117

1.7、数学函数

常见对一些数学函数有:
在这里插入图片描述
以下示例演示了数学函数的应用:

> sqrt(4)
[1] 2
> exp(1)
[1] 2.718282
> exp(2)
[1] 7.389056
> log(2,4)
[1] 0.5
> log10(10000)
[1] 4

取整函数:
在这里插入图片描述
以下示例演示了取整函数的应用:

> round(1.5)
[1] 2
> round(2.5)
[1] 2
> round(3.5)
[1] 4
> round(4.5)
[1] 4

注意:R 中的 round 函数有些情况下可能会"舍掉五"。
当取整位是偶数的时候,五也会被舍去,这一点与 C 语言有所不同。
R 的三角函数是弧度制:

> sin(pi/6)
[1] 0.5
> cos(pi/4)
[1] 0.7071068
> tan(pi/3)
[1] 1.732051

反三角函数:

> asin(0.5)
[1] 0.5235988
> acos(0.7071068)
[1] 0.7853981
> atan(1.732051)
[1] 1.047198

如果学习过概率论和统计学,应该对以下的概率分布函数比较了解,因为 R 语言为数学工作者设计,所以经常会用到:

> dnorm(0)
[1] 0.3989423
> pnorm(0)
[1] 0.5
> qnorm(0.95)
[1] 1.644854
> rnorm(3, 5, 2) # 产生 3 个平均值为 5,标准差为 2 的正态随机数
[1] 4.177589 6.413927 4.206032

这四个都是用来计算正态分布的函数。它们的名字都以 norm 结尾,代表"正态分布"。
分布函数名字的前缀有四种:
d - 概率密度函数
p - 概率密度积分函数(从无限小到 x 的积分)
q - 分位数函数
r - 随机数函数(常用于概率仿真)
注:由于本教程不是阐述数学专业理论的教程,所以对有关概率分布的数学理论不作详细解释。R 语言除了含有正态分布函数以外还有泊松分布 (pois, Poisson) 等常见分布函数,如果想详细了解可以学习"概率论与数理统计"。

标签:教程,FALSE,入门,函数,精通,运算符,print,TRUE,赋值
From: https://blog.csdn.net/qq_45746668/article/details/140937264

相关文章

  • 【前端】Typescript使用教程
    目录一、概述二、 TypeScript开发环境2.1安装和设置2.2编译和运行2.3工具和编辑器支持三、 TypeScript基本语法3.1基本类型3.2接口3.3类3.4函数3.5泛型3.6模块3.7高级类型四、TypeScript示例4.1枚举(Enumerations) 4.2类型别名(TypeAliases)4.3......
  • 013.Vue3入门,在App.vue中加载显示子页面
    1、App.vue代码如下:<scriptsetup>importTestpage001from'./view/Testpage001.vue'</script><template><Testpage001/></template><style></style>2、如图所示 3、Testpage001的代码如下:<template><......
  • 012.Vue3入门,class属性的几种绑定方法
    1、代码如下:<template><h3>class绑定</h3><div:class="{'active':isActive,'text-danger':hasError}">Class样式绑定1</div><div:class="classObject">Class样式绑定2</div><div......
  • 手把手教你运行Java开源框架若依RuoYi(视频教程)
    很多小伙伴在学习若依框架的时候,可能会遇到项目启动失败等各种问题。于是,我抽空制作了若依各个版本的项目启动教程,希望对初学者有一定帮助!在启动若依框架的时候,需要配置好基础开发环境。JDK版本使用1.8.xMySQL版本使用5.7.xNode版本使用14.xNacos版本使用2.0.xReids......
  • C--面向对象编程入门指南-全-
    C#面向对象编程入门指南(全)原文:BeginningC#object-orientedprogramming协议:CCBY-NC-SA4.0零、简介作为一名.NET培训师和首席程序员,我的经验是,大多数人在掌握C#语言的语法方面没有问题。困扰和挫败许多人的是面向对象编程方法和设计的更高层次的概念。更糟糕的是,大......
  • C--密码学高级教程-全-
    C#密码学高级教程(全)原文:ProCryptographyandCryptanalysis协议:CCBY-NC-SA4.0一、密码学基础介绍密码学的历史很长,也很有趣。完整的密码学非技术参考,推荐破译者[1]。这本书介绍了从大约4000年前埃及人首次使用密码学到近代历史,当时密码学在两次世界大战的结局中......
  • Python中yaml模块的使用教程
    一、yaml文件介绍yaml是一个专门用来写配置文件的语言。1.yaml文件规则区分大小写;使用缩进表示层级关系;使用空格键缩进,而非Tab键缩进缩进的空格数目不固定,只需要相同层级的元素左侧对齐;文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;注释标识......
  • C--编程零基础入门指南-全-
    C#编程零基础入门指南(全)原文:C#ProgrammingforAbsoluteBeginners协议:CCBY-NC-SA4.0一、做好准备亲爱的读者,欢迎您开始学习编程之旅!电脑、平板电脑、手机和许多其他电子设备都是可编程的,会完全按照人类程序员告诉他们的去做。编程是一个完全基于逻辑的世界。在这方面,......
  • IOS-AR-游戏开发入门手册-全-
    IOSAR游戏开发入门手册(全)原文:BeginningiOSARGameDevelopment协议:CCBY-NC-SA4.0一、介绍在本书中,我们将学习如何使用Unity(Unity3D2018,或者更常见的是Unity)的游戏开发软件来创建一个增强现实(或AR)游戏。在这一章中,我们将介绍Unity的下载和安装过程,并了解Un......
  • 【Garry‘s Mod】盖瑞模组服务器开服多人联机教程
    1、购买后登录服务器(百度莱卡云)购买服务器后,如下图......