R语言 运算符
运算符是告诉编译器执行特定数学或逻辑操作的符号。R语言中内置了丰富的运算符,并提供以下类型的运算符。
运算符类型
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。
将第一个向量的每个元素与第二个向量的对应元素进行比较。比较的结果是一个布尔值。
&
运算符:逐元素逻辑与操作符。它将第一个向量的每个元素与第二个向量的对应元素相结合,并在两个元素均为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
赋值运算符
这些运算符用于将值分配给向量。
<−
或 =
或 <<−
运算符: 称为左赋值。
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