運算子是一個符號,它告訴編譯器執行特定的數學或邏輯操作。 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
。
範例程式碼:
v <- c(3,1,TRUE,2+3i);
t <- c(4,1,FALSE,2+3i);
print(v&t);
執行上面範例程式碼,得到以下結果 -
[1] TRUE TRUE FALSE 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