R语言 操作符有哪些?怎么用?

文章导读
Previous Quiz Next 运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。R 语言内置了丰富的运算符,并提供了以下类型的运算符。
📋 目录
  1. 运算符类型
  2. Arithmetic Operators
  3. Relational Operators
  4. 逻辑运算符
  5. 赋值运算符
  6. 杂项运算符
A A

R - 运算符



Previous
Quiz
Next

运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。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