R語言運算子


運算子是一個符號,它告訴編譯器執行特定的數學或邏輯操作。 R語言豐富的內建運算子,並提供以下型別的運算子。

運算子型別

R程式設計中有以下型別的運算子 -

  • 算術運算子
  • 關係運算子
  • 邏輯運算子
  • 賦值運算子
  • 其他運算子

1.算術運算子

下表顯示了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
    

2. 關係運算子

下表顯示了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
    

3. 邏輯運算子

下表顯示了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
    

4. 賦值運算子

這些運算子用於向向量分配值。

  • <?<<?= - 叫作左分配符。參考以下程式碼 -

    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
    

5. 其他運算子

這些運算子用於特定目的,而不是一般的數學或邏輯運算。

  • 冒號運算子(:) - 它為向量建立一系列數位。參考以下程式碼 -

    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