📜  R-运算符

📅  最后修改于: 2020-11-29 07:42:01             🧑  作者: Mango


运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 R语言具有丰富的内置运算符,并提供以下类型的运算符。

运营商类型

我们在R编程中具有以下类型的运算符-

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 杂项运算符

算术运算符

下表显示了R语言支持的算术运算运算符。运算符作用于向量的每个元素。

Operator Description Example
+ Adds two vectors
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v+t)

it produces the following result −

[1] 10.0  8.5  10.0
Subtracts second vector from the first
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v-t)

it produces the following result −

[1] -6.0  2.5  2.0
* Multiplies both vectors
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v*t)

it produces the following result −

[1] 16.0 16.5 24.0
/ Divide the first vector with the second
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v/t)

When we execute the above code, it produces the following result −

[1] 0.250000 1.833333 1.500000
%% Give the remainder of the first vector with the second
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%%t)

it produces the following result −

[1] 2.0 2.5 2.0
%/% The result of division of first vector with second (quotient)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%/%t)

it produces the following result −

[1] 0 1 1
^ The first vector raised to the exponent of second vector
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v^t)

it produces the following result −

[1]  256.000  166.375 1296.000

关系运算符

下表显示了R语言支持的关系运算符。将第一向量的每个元素与第二向量的对应元素进行比较。比较的结果是一个布尔值。

Operator Description Example
> Checks if each element of the first vector is greater than the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>t)

it produces the following result −

[1] FALSE  TRUE FALSE FALSE
< Checks if each element of the first vector is less than the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v < t)

it produces the following result −

[1]  TRUE FALSE  TRUE FALSE
== Checks if each element of the first vector is equal to the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v == t)

it produces the following result −

[1] FALSE FALSE FALSE  TRUE
<= Checks if each element of the first vector is less than or equal to the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v<=t)

it produces the following result −

[1]  TRUE FALSE  TRUE  TRUE
>= Checks if each element of the first vector is greater than or equal to the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>=t)

it produces the following result −

[1] FALSE  TRUE FALSE  TRUE
!= Checks if each element of the first vector is unequal to the corresponding element of the second vector.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v!=t)

it produces the following result −

[1]  TRUE  TRUE  TRUE FALSE

逻辑运算符

下表显示了R语言支持的逻辑运算符。它仅适用于逻辑,数字或复数类型的向量。所有大于1的数字均视为逻辑值TRUE。

将第一向量的每个元素与第二向量的对应元素进行比较。比较的结果是一个布尔值。

Operator Description Example
& It is called Element-wise Logical AND operator. It combines each element of the first vector with the corresponding element of the second vector and gives a output TRUE if both the elements are TRUE.
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)

it produces the following result −

[1]  TRUE  TRUE FALSE  TRUE
| It is called Element-wise Logical OR operator. It combines each element of the first vector with the corresponding element of the second vector and gives a output TRUE if one the elements is TRUE.
v <- c(3,0,TRUE,2+2i)
t <- c(4,0,FALSE,2+3i)
print(v|t)

it produces the following result −

[1]  TRUE FALSE  TRUE  TRUE
! It is called Logical NOT operator. Takes each element of the vector and gives the opposite logical value.
v <- c(3,0,TRUE,2+2i)
print(!v)

it produces the following result −

[1] FALSE  TRUE FALSE FALSE

逻辑运算符&&和||仅考虑向量的第一个元素,并给出单个元素的向量作为输出。

Operator Description Example
&& Called Logical AND operator. Takes first element of both the vectors and gives the TRUE only if both are TRUE.
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)

it produces the following result −

[1] TRUE
|| Called Logical OR operator. Takes first element of both the vectors and gives the TRUE if one of them is TRUE.
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

it produces the following result −

[1] FALSE

赋值运算符

这些运算符用于为向量分配值。

Operator Description Example

<−

or

=

or

<<−

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)

it produces the following result −

[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

->>

Called Right Assignment
c(3,1,TRUE,2+3i) -> v1
c(3,1,TRUE,2+3i) ->> v2 
print(v1)
print(v2)

it produces the following result −

[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i

杂项运算符

这些运算符用于特定目的,而不是一般的数学或逻辑计算。

Operator Description Example
: Colon operator. It creates the series of numbers in sequence for a vector.
v <- 2:8
print(v) 

it produces the following result −

[1] 2 3 4 5 6 7 8
%in% This operator is used to identify if an element belongs to a vector.
v1 <- 8
v2 <- 12
t <- 1:10
print(v1 %in% t) 
print(v2 %in% t) 

it produces the following result −

[1] TRUE
[1] FALSE
%*% This operator is used to multiply a matrix with its transpose.
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

it produces the following result −

      [,1] [,2]
[1,]   65   82
[2,]   82  117