運算符是一個符號,它告訴編譯器執(zhí)行特定的數(shù)學或邏輯操作。 R語言豐富的內(nèi)置運算符,并提供以下類型的運算符。
在R編程中有以下類型的運算符 -
下表顯示了R語言支持的算術(shù)運算符。運算符對向量的每個元素進行操作。
加法(+), 相加兩個向量。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v+t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 10.0 8.5 10.0
減法(-), 將一個向量減去另一個向量。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v-t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] -6.0 2.5 2.0
乘法(*), 將兩向量相乘。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v*t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 16.0 16.5 24.0
除法(/), 將第一個向量除以第二個向量。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v/t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 0.250000 1.833333 1.500000
求余(%%), 將第一個向量除以第二個向量得到余數(shù)。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v%%t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 2.0 2.5 2.0
求模數(shù)(%/%), 將第一個向量除以第二個向量得到模數(shù)。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v%/%t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 0 1 1
求指數(shù)冪(^), 將第一個向量除以第二個向量得到冪值。
示例代碼:
v <- c( 2,5.5,6);
t <- c(8, 3, 4);
print(v^t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 256.000 166.375 1296.000
下表顯示了R語言支持的關(guān)系運算符。 將第一個向量的每個元素與第二向量中的相應(yīng)元素進行比較。比較結(jié)果是一個布爾值。
大于(>) - 檢查第一個向量的每個元素是否大于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v>t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] FALSE TRUE FALSE FALSE
小于(<) - 檢查第一個向量的每個元素是否小于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v < t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE FALSE TRUE FALSE
等于(==) - 檢查第一個向量的每個元素是否等于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v == t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] FALSE FALSE FALSE TRUE
小于或等于(<=) - 檢查第一個向量的每個元素是否小于或等于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v<=t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE FALSE TRUE TRUE
大于或等于(>=) - 檢查第一個向量的每個元素是否大于或等于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v>=t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] FALSE TRUE FALSE TRUE
不等于(!=) - 檢查第一個向量的每個元素是否不等于第二個向量中的相應(yīng)元素。
示例代碼:
v <- c(2,5.5,6,9);
t <- c(8,2.5,14,9);
print(v!=t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE TRUE TRUE FALSE
下表顯示了R語言支持的邏輯運算符。它僅適用于邏輯,數(shù)字或復(fù)合類型的向量。所有大于1的數(shù)字都被認為是邏輯值TRUE。
將第一個向量的每個元素與第二個向量的相應(yīng)元素進行比較。比較結(jié)果是一個布爾值。
邏輯與(&) - 它被稱為元素邏輯與運算符。它將第一個向量的每個元素與第二個向量的相應(yīng)元素相結(jié)合,如果兩個元素都為真,則輸出為TRUE。
示例代碼:
v <- c(3,1,TRUE,2+3i);
t <- c(4,1,FALSE,2+3i);
print(v&t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE TRUE FALSE TRUE
邏輯或(|) - 它被稱為元素邏輯或運算符。它將第一個向量的每個元素與第二個向量的相應(yīng)元素相結(jié)合,如果兩個元素中有一個為真,則輸出為TRUE。
示例代碼:
v <- c(3,0,TRUE,2+2i);
t <- c(4,0,FALSE,2+3i);
print(v|t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE FALSE TRUE TRUE
邏輯非(!) - 它被稱為元素邏輯非運算符。獲取向量的每個元素并給出相反的邏輯值。
示例代碼:
v <- c(3,0,TRUE,2+2i);
print(!v);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] FALSE TRUE FALSE FALSE
邏輯運算符&&和||僅考慮向量的第一個元素,并給出單個元素的向量作為輸出。
邏輯與運算符(&&) - 取兩個向量的第一個元素,并且只有在兩個都為TRUE時結(jié)果才為TRUE值。
v <- c(3,0,TRUE,2+2i);
t <- c(1,3,TRUE,2+3i);
print(v&&t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE
邏輯或運算符(||) - 取兩個向量的第一個元素,并且如果有一個為TRUE時,結(jié)果為TRUE值。
v <- c(0,0,TRUE,2+2i);
t <- c(0,3,TRUE,2+3i);
print(v||t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[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);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[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);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
這些運算符用于特定目的,而不是一般的數(shù)學或邏輯運算。
冒號運算符(:) - 它為向量創(chuàng)建一系列數(shù)字。參考以下代碼 -
v <- 2:8;
print(v);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] 2 3 4 5 6 7 8
成員運算符(%in%) - 該運算符用于識別元素是否屬于向量。參考以下代碼 -
v1 <- 8 ;
v2 <- 12;
t <- 1:10;
print(v1 %in% t) ;
print(v2 %in% t) ;
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[1] TRUE
[1] FALSE
轉(zhuǎn)置相乘(%*%) - 該運算符用于將矩陣與其轉(zhuǎn)置相乘。參考以下代碼 -
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE);
t = M %*% t(M);
print(t);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[,1] [,2]
[1,] 65 82
[2,] 82 117