运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。R语言有丰富的内置运算符,并提供以下类型的运算符。
运算符类型
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
算术运算符
下表列出了用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
|
关系运算符
下表列出了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语言中支持的逻辑运算符。它仅适用于一种逻辑,数字或复杂的矢量。所有数值大于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
|
| |
这就是所谓的逐元素逻辑或运算符。它结合与第二向量的相应元素的第一向量的每个元素,如果使用这些元素之一为TRUE则给出一个TRUE。 |
v <- c(3,0,TRUE,2+2i)
t <- c(4,0,FALSE,2+3i)
print(v|t)
它产生以下结果:
[1] TRUE FALSE TRUE TRUE
|
! |
这就是所谓的逻辑非运算符。取向量的每个元素,并给出了相反逻辑值。 |
v <- c(3,0,TRUE,2+2i)
print(!v)
它产生以下结果:
[1] FALSE TRUE FALSE FALSE
|
逻辑运算符&&和||考虑矢量仅第一元素并给单个元素作为输出的向量。
运算符 |
描述 |
示例 |
&& |
所谓的逻辑与运算符。取两个向量的第一元素,仅当两个都为TRUE结果取TRUE。 |
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)
它产生以下结果:
[1] TRUE
|
|| |
所谓的逻辑或运算符。取两个向量的第一元素,仅当两个都为TRUE结果为TRUE。 |
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)
它产生以下结果:
[1] FALSE
|
赋值运算符
这些操作符是用来分配值到向量。
运算符 |
描述 |
示例 |
<- 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)
它产生以下结果:
[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
|
-> or ->> |
叫做右分配 |
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
|
|
请发表评论