R 简明教程

R - Operators

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

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. R language is rich in built-in operators and provides following types of operators.

Types of Operators

在 R 编程中,我们有以下类型的算子−

We have the following types of operators in R programming −

  1. Arithmetic Operators

  2. Relational Operators

  3. Logical Operators

  4. Assignment Operators

  5. Miscellaneous Operators

Arithmetic Operators

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

Following table shows the arithmetic operators supported by R language. The operators act on each element of the vector.

Operator

Description

Example

+

Adds two vectors

Live Demov ← 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

Live Demov ← 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

Live Demov ← 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

Live Demov ← 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

Live Demov ← 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)

Live Demov ← 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

Live Demov ← 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

Relational Operators

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

Following table shows the relational operators supported by R language. Each element of the first vector is compared with the corresponding element of the second vector. The result of comparison is a Boolean value.

Operator

Description

Example

>

Checks if each element of the first vector is greater than the corresponding element of the second vector.

Live Demov ← 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.

Live Demov ← 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.

Live Demov ← 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.

Live Demov ← 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.

Live Demov ← 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.

Live Demov ← 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

Logical Operators

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

Following table shows the logical operators supported by R language. It is applicable only to vectors of type logical, numeric or complex. All numbers greater than 1 are considered as logical value TRUE.

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

Each element of the first vector is compared with the corresponding element of the second vector. The result of comparison is a Boolean value.

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.

Live Demov ← 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.

Live Demov ← 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

!

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

The logical operator && and || considers only the first element of the vectors and give a vector of single element as output.

Operator

Description

Example

&&

Called Logical AND operator. Takes first element of both the vectors and gives the TRUE only if both are TRUE.

Live Demov ← 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.

Live Demov ← c(0,0,TRUE,2+2i) t ← c(0,3,TRUE,2+3i) print(v

Assignment Operators

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

These operators are used to assign values to vectors.

Operator

Description

Example

<− or = or <<−

Called Left Assignment

Live Demov1 ← 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

Live Democ(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

Miscellaneous Operators

这些运算符用于特殊目的,而不是常规的数学或逻辑运算。

These operators are used to for specific purpose and not general mathematical or logical computation.

Operator

Description

Example

:

Colon operator. It creates the series of numbers in sequence for a vector.

Live Demov ← 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.

Live Demov1 ← 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.

Live DemoM = 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