- WIKI教程
- 学习R编程
- R - 运算符
R - 运算符
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 R语言内置运算符丰富,并提供以下类型的运算符。
运算符的类型
我们在R编程中有以下类型的运算符 -
- 算术运算符
- 关系运算符
- 逻辑运算符
- 分配运算符
- 其它运算符
算术运算符 (Arithmetic Operators)
下表显示了R语言支持的算术运算符。 运算符作用于向量的每个元素。
操作者 | 描述 | 例 |
---|
+ | Adds two vectors | 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
|
逻辑运算符 (Logical Operators)
下表显示了R语言支持的逻辑运算符。 它仅适用于逻辑,数字或复杂类型的向量。 所有大于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
|
! | 它被称为Logical 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
|
赋值操作符 (Assignment Operators)
这些运算符用于为向量赋值。
操作者 | 描述 | 例 |
---|
< - 要么 = 要么 << - | Called Left Assignment | 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
|
- > 要么 - >> | Called Right Assignment | 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
|
混合操作符 (Miscellaneous Operators)
这些运算符用于特定目的,而不是一般的数学或逻辑计算。
操作者 | 描述 | 例 |
---|
: | 冒号运算符。 它为矢量按顺序创建一系列数字。 | 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
|