R - 运算符
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。R 语言内置了丰富的运算符,并提供了以下类型的运算符。
运算符类型
R 编程语言中有以下类型的运算符 −
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
- Miscellaneous Operators
Arithmetic Operators
下表展示了 R 语言支持的算术运算符。这些运算符对向量的每个元素进行操作。
| 运算符 | 描述 | 示例 |
|---|---|---|
| + | 将两个向量相加 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v+t) 输出以下结果 − [1] 10.0 8.5 10.0 |
| − | 从第一个向量中减去第二个向量 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v-t) 输出以下结果 − [1] -6.0 2.5 2.0 |
| * | 将两个向量相乘 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v*t) 输出以下结果 − [1] 16.0 16.5 24.0 |
| / | 将第一个向量除以第二个向量 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v/t) 执行上述代码时,输出以下结果 − [1] 0.250000 1.833333 1.500000 |
| %% | 第一个向量除以第二个向量的余数 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%%t) 输出以下结果 − [1] 2.0 2.5 2.0 |
| %/% | 第一个向量除以第二个向量的除法结果(商) |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%/%t) 输出以下结果 − [1] 0 1 1 |
| ^ | 第一个向量被提升到第二个向量的指数 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v^t) 输出以下结果 − [1] 256.000 166.375 1296.000 |
Relational Operators
下表展示了 R 语言支持的关系运算符。第一个向量的每个元素与第二个向量的对应元素进行比较。比较结果是一个布尔值。
| 运算符 | 描述 | 示例 |
|---|---|---|
| > | 检查第一个向量的每个元素是否大于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>t) 输出以下结果 − [1] FALSE TRUE FALSE FALSE |
| < | 检查第一个向量的每个元素是否小于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v < t) 输出以下结果 − [1] TRUE FALSE TRUE FALSE |
| == | 检查第一个向量的每个元素是否等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v == t) 输出以下结果 − [1] FALSE FALSE FALSE TRUE |
| <= | 检查第一个向量的每个元素是否小于或等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v<=t) 输出以下结果 − [1] TRUE FALSE TRUE TRUE |
| >= | 检查第一个向量的每个元素是否大于或等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>=t) 输出以下结果 − [1] FALSE TRUE FALSE TRUE |
| != | 检查第一个向量的每个元素是否不等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v!=t) 输出以下结果 − [1] TRUE TRUE TRUE FALSE |
逻辑运算符
下表展示了 R 语言支持的逻辑运算符。这些运算符仅适用于类型为 logical、numeric 或 complex 的向量。大于 1 的所有数字都被视为逻辑值 TRUE。
第一个向量的每个元素与第二个向量的对应元素进行比较。比较结果是一个布尔值。
| 运算符 | 描述 | 示例 |
|---|---|---|
| & | 称为逐元素逻辑 AND 运算符。它将第一个向量的每个元素与第二个向量的对应元素组合,如果两个元素均为 TRUE,则输出 TRUE。 |
v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t) 它产生以下结果 − [1] TRUE TRUE FALSE TRUE |
| | | 称为逐元素逻辑 OR 运算符。它将第一个向量的每个元素与第二个向量的对应元素组合,如果其中一个元素为 TRUE,则输出 TRUE。 |
v <- c(3,0,TRUE,2+2i) t <- c(4,0,FALSE,2+3i) print(v|t) 它产生以下结果 − [1] TRUE FALSE TRUE TRUE |
| ! | 称为逻辑 NOT 运算符。它取向量的每个元素并给出相反的逻辑值。 |
v <- c(3,0,TRUE,2+2i) print(!v) 它产生以下结果 − [1] FALSE TRUE FALSE FALSE |
逻辑运算符 && 和 || 只考虑向量的第一个元素,并输出单个元素的向量。
| 运算符 | 描述 | 示例 |
|---|---|---|
| && | 称为逻辑 AND 运算符。它取两个向量的第一个元素,仅当两者均为 TRUE 时输出 TRUE。 |
v <- c(3,0,TRUE,2+2i) t <- c(1,3,TRUE,2+3i) print(v&&t) 它产生以下结果 − [1] TRUE |
| || | 称为逻辑 OR 运算符。它取两个向量的第一个元素,如果其中一个为 TRUE,则输出 TRUE。 |
v <- c(0,0,TRUE,2+2i) t <- c(0,3,TRUE,2+3i) print(v||t) 它产生以下结果 − [1] FALSE |
赋值运算符
这些运算符用于向向量赋值。
| 运算符 | 描述 | 示例 |
|---|---|---|
|
<− 或 = 或 <<− |
称为左赋值 |
v1 <- c(3,1,TRUE,2+3i) v2 <<- c(3,1,TRUE,2+3i) v3 = c(3,1,TRUE,2+3i) print(v1) print(v2) print(v3) 它产生以下结果 − [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i |
|
-> 或 ->> |
称为右赋值 |
c(3,1,TRUE,2+3i) -> v1 c(3,1,TRUE,2+3i) ->> v2 print(v1) print(v2) 它产生以下结果 − [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i |
杂项运算符
这些运算符用于特定目的,而不是一般的数学或逻辑计算。
| 运算符 | 描述 | 示例 |
|---|---|---|
| : | 冒号运算符。它为向量创建按序列排列的数字系列。 |
v <- 2:8 print(v) 它产生以下结果 − [1] 2 3 4 5 6 7 8 |
| %in% | 此运算符用于识别一个元素是否属于某个向量。 |
v1 <- 8 v2 <- 12 t <- 1:10 print(v1 %in% t) print(v2 %in% t) 它产生以下结果 − [1] TRUE [1] FALSE |
| %*% | 此运算符用于将矩阵与其转置相乘。 |
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) t = M %*% t(M) print(t) 它产生以下结果 −
[,1] [,2]
[1,] 65 82
[2,] 82 117
|