位置:首頁 > 大數據教學 > R語言教學 > R語言運算符

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。

所述第一向量的每個元素與所述第二向量的相應元素進行比較。比較的結果是一個布爾值。

運算符 描述 示例
& 這就是所謂的元素邏輯AND運算符。它結合與第二向量的相應元素的第一向量的每個元素,如果這兩個元件都為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則給出一個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

賦值運算符

這些操作符是用來分配值到向量。

運算符 描述 示例
<- 
or

or 
<<-
叫做左分配
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
-> 
or
->>
叫做右分配
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