R 运算符
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 R 语言内置了丰富的运算符,提供了以下几种运算符。
运算符类型
在 R 编程中,我们有以下几种运算符:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 杂项运算符
算术运算符
下表显示了 R 语言支持的算术运算符。运算符作用于向量的每个元素。
Operator | 描述 | 例子 |
---|---|---|
+ | 添加两个向量 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v+t) |
: | 从第一个向量中减去第二个向量 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v-t) |
* | 将两个向量相乘 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v*t) |
/ | 将第一个向量除以第二个向量 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v/t) |
%% | 用第二个向量给出第一个向量的余数 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%%t) |
%/% | 第一个向量与第二个(商)相除的结果 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%/%t) |
^ | 第一个向量升到第二个向量的指数 |
v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v^t) |
关系运算符
下表显示了 R 语言支持的关系运算符。将第一个向量的每个元素与第二个向量的对应元素进行比较。比较的结果是一个布尔值。
Operator | 描述 | 例子 |
---|---|---|
> | 检查第一个向量的每个元素是否大于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>t) |
< | 检查第一个向量的每个元素是否小于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v < t) |
== | 检查第一个向量的每个元素是否等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v == t) |
<= | 检查第一个向量的每个元素是否小于或等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v<=t) |
>= | 检查第一个向量的每个元素是否大于或等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>=t) |
!= | 检查第一个向量的每个元素是否不等于第二个向量的对应元素。 |
v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v!=t) |
逻辑运算符
下表显示了 R 语言支持的逻辑运算符。它仅适用于逻辑、数字或复数类型的向量。所有大于 1 的数字都被视为逻辑值 TRUE。
将第一个向量的每个元素与第二个向量的对应元素进行比较。比较的结果是一个布尔值。
Operator | 描述 | 例子 |
---|---|---|
& | 它被称为逐元素逻辑与运算符。它将第一个向量的每个元素与第二个向量的相应元素组合在一起,如果两个元素都为 TRUE,则输出 TRUE。 |
v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t) |
| | 它被称为逐元素逻辑或运算符。它将第一个向量的每个元素与第二个向量的相应元素组合在一起,如果其中一个元素为 TRUE,则输出 TRUE。 |
v <- c(3,0,TRUE,2+2i) t <- c(4,0,FALSE,2+3i) print(v|t) |
! | 它被称为逻辑非运算符。获取向量的每个元素并给出相反的逻辑值。 |
v <- c(3,0,TRUE,2+2i) print(!v) |
逻辑运算符 && 和 ||仅考虑向量的第一个元素并给出单个元素的向量作为输出。
Operator | 描述 | 例子 |
---|---|---|
&& | 称为逻辑与运算符。取两个向量的第一个元素,仅当两者都为 TRUE 时才给出 TRUE。 |
v <- c(3,0,TRUE,2+2i) t <- c(1,3,TRUE,2+3i) print(v&&t) |
|| | 称为逻辑或运算符。取两个向量的第一个元素,如果其中一个为 TRUE,则为 TRUE。 |
v <- c(0,0,TRUE,2+2i) t <- c(0,3,TRUE,2+3i) print(v||t) |
赋值运算符
这些运算符用于为向量赋值。
Operator | 描述 | 例子 |
---|---|---|
<− or = or <<- |
称为左分配 |
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) |
-> or ->> |
称为权利分配 |
c(3,1,TRUE,2+3i) -> v1 c(3,1,TRUE,2+3i) ->> v2 print(v1) print(v2) |
杂项运算符
这些运算符用于特定目的,而不是一般的数学或逻辑计算。
Operator | 描述 | 例子 |
---|---|---|
: | 冒号运算符。它为向量按顺序创建一系列数字。 |
v <- 2:8 print(v) |
%in% | 此运算符用于识别元素是否属于向量。 |
v1 <- 8 v2 <- 12 t <- 1:10 print(v1 %in% t) print(v2 %in% t) |
%*% | 该运算符用于将矩阵与其转置相乘。 |
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) t = M %*% t(M) print(t) |