R - Toán tử

Một toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện các thao tác toán học hoặc logic cụ thể. Ngôn ngữ R có nhiều toán tử cài sẵn và cung cấp các loại toán tử sau.

Các loại nhà khai thác

Chúng ta có các loại toán tử sau trong lập trình R:

  • Toán tử số học
  • Toán tử quan hệ
  • Toán tử logic
  • Người điều hành nhiệm vụ
  • Các nhà khai thác khác

Toán tử số học

Bảng sau đây cho thấy các toán tử số học được hỗ trợ bởi ngôn ngữ R. Các toán tử tác động lên từng phần tử của vectơ.

Nhà điều hành Sự miêu tả Thí dụ
+ Thêm hai vectơ
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v+t)

nó tạo ra kết quả sau:

[1] 10.0  8.5  10.0
- Trừ vectơ thứ hai với vectơ đầu tiên
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v-t)

nó tạo ra kết quả sau:

[1] -6.0  2.5  2.0
* Nhân cả hai vectơ
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v*t)

nó tạo ra kết quả sau:

[1] 16.0 16.5 24.0
/ Chia vectơ đầu tiên với vectơ thứ hai
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v/t)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1] 0.250000 1.833333 1.500000
%% Cho phần còn lại của vectơ thứ nhất với vectơ thứ hai
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%%t)

nó tạo ra kết quả sau:

[1] 2.0 2.5 2.0
% /% Kết quả của phép chia vector thứ nhất với thứ hai (thương số)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%/%t)

nó tạo ra kết quả sau:

[1] 0 1 1
^ Vectơ đầu tiên được nâng lên thành số mũ của vectơ thứ hai
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v^t)

nó tạo ra kết quả sau:

[1]  256.000  166.375 1296.000

Toán tử quan hệ

Bảng sau đây cho thấy các toán tử quan hệ được hỗ trợ bởi ngôn ngữ R. Mỗi phần tử của vectơ đầu tiên được so sánh với phần tử tương ứng của vectơ thứ hai. Kết quả của phép so sánh là một giá trị Boolean.

Nhà điều hành Sự miêu tả Thí dụ
> Kiểm tra xem mỗi phần tử của vectơ đầu tiên có lớn hơn phần tử tương ứng của vectơ thứ hai hay không.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>t)

nó tạo ra kết quả sau:

[1] FALSE  TRUE FALSE FALSE
< Kiểm tra xem mỗi phần tử của vectơ đầu tiên có nhỏ hơn phần tử tương ứng của vectơ thứ hai hay không.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v < t)

nó tạo ra kết quả sau:

[1]  TRUE FALSE  TRUE FALSE
== Kiểm tra xem mỗi phần tử của vectơ đầu tiên có bằng phần tử tương ứng của vectơ thứ hai hay không.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v == t)

nó tạo ra kết quả sau:

[1] FALSE FALSE FALSE  TRUE
<= Kiểm tra xem mỗi phần tử của vectơ đầu tiên nhỏ hơn hoặc bằng phần tử tương ứng của vectơ thứ hai.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v<=t)

nó tạo ra kết quả sau:

[1]  TRUE FALSE  TRUE  TRUE
> = Kiểm tra xem mỗi phần tử của vectơ đầu tiên có lớn hơn hoặc bằng phần tử tương ứng của vectơ thứ hai hay không.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>=t)

nó tạo ra kết quả sau:

[1] FALSE  TRUE FALSE  TRUE
! = Kiểm tra xem mỗi phần tử của vectơ đầu tiên có bằng với phần tử tương ứng của vectơ thứ hai hay không.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v!=t)

nó tạo ra kết quả sau:

[1]  TRUE  TRUE  TRUE FALSE

Toán tử logic

Bảng sau đây cho thấy các toán tử logic được hỗ trợ bởi ngôn ngữ R. Nó chỉ áp dụng cho các vectơ kiểu lôgic, số hoặc phức. Tất cả các số lớn hơn 1 được coi là giá trị logic ĐÚNG.

Mỗi phần tử của vectơ đầu tiên được so sánh với phần tử tương ứng của vectơ thứ hai. Kết quả của phép so sánh là một giá trị Boolean.

Nhà điều hành Sự miêu tả Thí dụ
& Nó được gọi là toán tử logic AND nguyên tố. Nó kết hợp từng phần tử của vectơ đầu tiên với phần tử tương ứng của vectơ thứ hai và cho kết quả là TRUE nếu cả hai phần tử đều TRUE.
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)

nó tạo ra kết quả sau:

[1]  TRUE  TRUE FALSE  TRUE
| Nó được gọi là toán tử logic HOẶC yếu tố khôn ngoan. Nó kết hợp từng phần tử của vectơ đầu tiên với phần tử tương ứng của vectơ thứ hai và cho kết quả là TRUE nếu một trong các phần tử là TRUE.
v <- c(3,0,TRUE,2+2i)
t <- c(4,0,FALSE,2+3i)
print(v|t)

nó tạo ra kết quả sau:

[1]  TRUE FALSE  TRUE  TRUE
! Nó được gọi là toán tử logic NOT. Lấy từng phần tử của vectơ và cho giá trị lôgic ngược lại.
v <- c(3,0,TRUE,2+2i)
print(!v)

nó tạo ra kết quả sau:

[1] FALSE  TRUE FALSE FALSE

Toán tử logic && và || chỉ xem xét phần tử đầu tiên của các vectơ và cho một vectơ gồm một phần tử duy nhất làm đầu ra.

Nhà điều hành Sự miêu tả Thí dụ
&& Được gọi là toán tử logic AND. Lấy phần tử đầu tiên của cả hai vectơ và chỉ đưa ra giá trị TRUE nếu cả hai đều là ĐÚNG.
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)

nó tạo ra kết quả sau:

[1] TRUE
|| Được gọi là toán tử logic HOẶC. Lấy phần tử đầu tiên của cả hai vectơ và trả về TRUE nếu một trong số chúng là TRUE.
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

nó tạo ra kết quả sau:

[1] FALSE

Người điều hành nhiệm vụ

Các toán tử này được sử dụng để gán giá trị cho vectơ.

Nhà điều hành Sự miêu tả Thí dụ

<-

hoặc là

=

hoặc là

<< -

Được gọi là Nhiệm vụ Bên trái
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)

nó tạo ra kết quả sau:

[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

->

hoặc là

- >>

Được gọi là Chuyển nhượng Đúng
c(3,1,TRUE,2+3i) -> v1
c(3,1,TRUE,2+3i) ->> v2 
print(v1)
print(v2)

nó tạo ra kết quả sau:

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

Các nhà khai thác khác

Các toán tử này được sử dụng cho mục đích cụ thể chứ không phải tính toán toán học hoặc logic chung chung.

Nhà điều hành Sự miêu tả Thí dụ
: Toán tử đại tràng. Nó tạo ra chuỗi số theo thứ tự cho một vectơ.
v <- 2:8
print(v)

nó tạo ra kết quả sau:

[1] 2 3 4 5 6 7 8
%trong% Toán tử này được sử dụng để xác định xem một phần tử có thuộc vectơ hay không.
v1 <- 8
v2 <- 12
t <- 1:10
print(v1 %in% t) 
print(v2 %in% t)

nó tạo ra kết quả sau:

[1] TRUE
[1] FALSE
% *% Toán tử này được sử dụng để nhân một ma trận với chuyển vị của nó.
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

nó tạo ra kết quả sau:

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