在本教程中,您将学习运算符以及 R 编程语言中使用的不同类型的运算符。
在 R 中,运算符与任何其他编程语言一样扮演着至关重要的角色。运算符是像 +、-、%、&、|、&&、<、<=、== 这样的特殊符号,它们在编程语言中执行某种数学运算。这些运算符需要特定的值,只有有了这些值,它们才能执行逻辑或数学运算。这些值进一步被称为操作数。
在程序中,运算符能够操作数据和变量。操作数是通过应用特定运算符来操作的对象。

R 编程中不同类型的运算符如下所列。

算术运算符对 R 中所有可用的基本数据类型(将在我们的下一个教程中讨论)执行基本的算术运算。算术运算包括
算术运算汇总表
| 算术运算 | 运算符 | 用途 | 描述 |
|---|---|---|---|
| 加法 | + | (A+B) | 将两个操作数 A 和 B 相加 |
| 减法 | - | (A-B) | 从 A 中减去操作数 B |
| 乘法 | * | (A*B) | 将两个操作数 A 和 B 相乘 |
| 除法 | / | (A/B) | 将两个操作数 A 和 B 相除 |
| 取模 | %% | (A%%B) | 获取操作数 A 除以操作数 B 后的余数 |
| 商 | %/% | (A%/%B) | 操作数 A 除以操作数 B 后的商 |
| 指数 | ^ | (A^B) | 操作数 A 的操作数 B 次方 |
Arithmetic operators + - * / %% %/% ^
A <- 20 #value 20 assigned using leftward operator "<-" to variable A
B = 10 #value 10 assigned using EQUAL TO operator "=" to variable B
print(A+B) #Addition
print(A-B) #subtraction
print(A*B) #Multiplication
print(A/B) #division
print(A%%B) #Remainder
print(A%/%B) #Quotient
print(A^B) #power
输出
> print(A+B) #Addition [1] 30 > print(A-B) #subtraction [1] 10 > print(A*B) #Multiplication [1] 200 > print(A/B) #division [1] 2 > print(A%%B) #Remainder [1] 0 > print(A%/%B) #Quotient [1] 2 > print(A^B) #power [1] 1.024e+13
# Arithmetic operators + - * / %% %/% ^ with vectors
A <- c(10, 7, 7)
B <- c(0, 9, 4)
print(A+B) #Addition
print(A-B) #subtraction
print(A*B) #Multiplication
print(A/B) #division
print(A%%B) #Remainder
print(A%/%B) #Quotient
print(A^B) #power
输出
[1] 10 16 11 [1] 10 -2 3 [1] 0 63 28 [1] Inf 0.7777778 1.7500000 [1] NaN 7 3 [1] Inf 0 1 [1] 1 40353607 2401
注意: • NaN 表示“非数字” & Inf 表示“无穷大” • 它们用于复数(实部和虚部)和数值。• 两者都是 R 中的保留字
逻辑运算符执行诸如与、或、非之类的逻辑运算。使用逻辑运算符的逻辑运算结果总是分为两类,即真或假。像 a&b (a 与 b)、a&&b (a 与 b)、a|b (a 或 b) 等逻辑表达式被定义为如果为真则值为 1,如果为假则为 0。逻辑运算符的类型有

该图表示不同逻辑运算符的操作及其对应的输出,即 TRUE (1) 和 FALSE (0)。
逻辑运算汇总表
| 逻辑运算 | 运算符 | 用途 | 描述 |
|---|---|---|---|
| 短 与 | & | (A&B) | 元素级逻辑与运算符 |
| 短 或 | | | (A|B) | 元素级逻辑或运算符 |
| 非 | ! | (A!B) | 元素级逻辑非运算符 |
| 长 与 | && | (A&&B) | 逻辑与运算符 |
| 长 或 | || | (A||B) | 逻辑或运算符 |
#Logical Operator
# & | ! && ||
a <- 0 # logical FALSE
b <- 2 # logical TRUE
print ( a & b ) # logical AND element wise
print ( a | b ) # logical OR element wise
print ( !a ) # logical NOT element wise
print ( a && b ) # logical AND consolidated for all elements
print ( a || b ) # logical OR consolidated for all elements
输出
[1] FALSE [1] TRUE [1] TRUE [1] FALSE [1] TRUE
| 逻辑运算符 | 描述 |
|---|---|
| & | | 短形式执行元素级比较 |
| && || | 长形式通过仅从左到右检查第一个元素来评估结果。 |
#Logical Operator
# & && || |
A <- c(3.5,TRUE,2+5i) #vector A
B <- c(2.5,TRUE,3+2i) #vector B
print(A&B)
print(A&&B)
print(A|B)
print(A||B)
输出
[1] TRUE TRUE TRUE [1] TRUE [1] TRUE TRUE TRUE [1] TRUE
在给定的程序中,A&B 评估每个元素,因此称为元素级比较,它与每个元素进行比较,并返回输出 TRUE TRUE TRUE

在 A&&B 的情况下,从左到右比较并仅检查第一对元素。在下图中,比较了 3.5 && 2.5,其结果为 TRUE,因此在长形式中自动验证下一组为 TRUE,并返回 TRUE。在长或 (||) 的情况下,遵循相同的过程。逻辑运算符是 || 而不是 &&,它根据上述真值表产生结果。

在 R 中,关系运算符比较元素之间的关系。关系运算符的输出为 TRUE (1) 或 FALSE (0)。关系运算符的类型有
关系运算符汇总表
| 关系运算 | 运算符 | 用途 | 描述 |
|---|---|---|---|
| 小于 | < | (A<B) | 检查操作数 A 是否小于操作数 B |
| 大于 | > | (A>B) | 检查操作数 A 是否大于操作数 B |
| 等于 | == | (A==B) | 检查操作数 A 是否等于操作数 B |
| 小于等于 | <= | (A<=B) | 检查操作数 A 是否小于或等于操作数 B |
| 大于等于 | >= | (A>=B) | 检查操作数 A 是否大于或等于操作数 B |
| 不等于 | != | (A!=B) | 检查操作数 A 是否不等于操作数 B |
#Relational Operators
# < > == <= >= !=
A <- 20 #value 20 assigned using leftward operator "<-" to variable A
B = 10 #value 10 assigned using Equal to operator "=" to variable B
print(AB) #Greater than
print(A==B) #equal to
print(A<=B) #Less than equal to
print(A>=B) #Greater than equal to
print(A!=B) #Not equal to
输出
> print(A print(A>B) #Greater than [1] TRUE > print(A==B) #equal to [1] FALSE > print(A<=B) #Less than equal to [1] FALSE > print(A>=B) #Greater than equal to [1] TRUE > print(A!=B) #Not equal to [1] TRUE
“赋值”一词本身就表示了操作的性质。赋值运算符被认为是用于赋值的。赋值运算符的类型有
赋值运算符汇总表
| 赋值运算 | 运算符 | 用途 | 描述 |
|---|---|---|---|
| 向左运算符 |
<- <<- |
(A<-3) (A<<-3) |
· 值 3 被赋给 A。 · 在这两种情况下,都将右侧的值赋给左侧的变量。 · 区别在于变量的作用域。赋值运算符 <<- 的行为类似于全局作用域。 |
| 向右运算符 |
-> ->> |
(1->B) (1->>B) |
· 将左侧的值赋给右侧。 · ->> 赋值具有全局作用域。 |
| 等于 | = | (A=8) | 将右侧的值赋给左侧的操作数/变量。 |
# R Assignment Operators
a = 7.8
print ( a )
a <- FALSE
print ( a )
454 -> a
print ( a )
a <<- 2.9
print ( a )
6+3i ->>a
print ( a )
输出
[1] 7.8 [1] FALSE [1] 454 [1] 2.9 [1] 6+3i
在 R 中,除了您到目前为止学到的运算符之外,还有某些运算符可以执行操作数据的特定操作。如下表所示
| 运算符 | 用途 | 描述 |
|---|---|---|
| : (冒号) | A:B | 打印从操作数 A 到操作数 B 的一系列数字 |
| %in% | A%in%B | 确定元素 A 是否属于 B |
| %*% | A%*%B | 向量与其转置的乘积。 |
# R Miscellaneous Operators
a = 2:9
print ( a )
a = c(2, 7, 71)
b = 0
print ( b %in% a )
a = c(2, 7, 71)
b = 71
print ( b %in% a )
M = matrix(c(1,2,3,4), 2, 2, TRUE)
print ( M %*% t(M) )
输出
[1] 2 3 4 5 6 7 8 9
[1] FALSE
[1] TRUE
[,1] [,2]
[1,] 5 11
[2,] 11 25
程序中的一些术语和语法现在可能不熟悉,只需理解概念,我们将在接下来的教程中深入探讨每个概念。