R - 運算子:初學者的友好指南
你好,未來的R語言編程師!我很興奮能成為你探索R運算子世界的引路人。作為一個教了多年計算機科學的人,我可以告訴你,理解運算子就像學習木匠工具箱中的基本工具一樣——它們是建造驚艷事物的關鍵!
運算子的類型
在我們深入之前,讓我們快速看一下我們將要探索的運算子類型:
運算子類型 | 說明 |
---|---|
誌算運算子 | 用於基本數學操作 |
間係運算子 | 用於比較值 |
邏輯運算子 | 用於布爾操作 |
賦值運算子 | 用於變量賦值 |
雜項運算子 | 為特定任務的特殊運算子 |
現在,讓我們捋起袖子開始吧!
誌算運算子
誌算運算是編程的基石。它們讓我們能夠進行基本的數學操作。讓我們看看一些例子:
# 加法
5 + 3 # 結果:8
# 減法
10 - 4 # 結果:6
# 乘法
6 * 7 # 結果:42
# 除法
20 / 5 # 結果:4
# 指數
2 ^ 3 # 結果:8
# 模數(除法後的餘數)
17 %% 5 # 結果:2
# 整數除法
17 %/% 5 # 結果:3
這些操作都很直接,但讓我分享一個小故事。我曾經有一個學生對模數運算子感到困惑。我這樣解釋給他聽:"想像你有17個餅乾和5個朋友。在給每個朋友平均分配餅乾後,你會剩下多少個?" 這正是 17 %% 5
計算的!
間係運算子
間係運算子就像比賽中的裁判——它們比較值,並告訴我們它們之間的關係。這裡有一些例子:
# 等於
5 == 5 # 結果:TRUE
# 不等於
10 != 7 # 結果:TRUE
# 大於
8 > 3 # 結果:TRUE
# 小於
6 < 9 # 結果:TRUE
# 大於或等於
7 >= 7 # 結果:TRUE
# 小於或等於
4 <= 5 # 結果:TRUE
我喜歡將這些運算子看作是我們問R的問題。例如,5 == 5
就像在問:"5等於5嗎?" 而R樂意回答:"TRUE!"
邏輯運算子
邏輯運算子是我們代碼中的決策者。它們與布爾值(TRUE和FALSE)一起工作,幫助我們創建複雜條件。讓我們看看一些例子:
# AND運算子
TRUE & FALSE # 結果:FALSE
# OR運算子
TRUE | FALSE # 結果:TRUE
# NOT運算子
!TRUE # 結果:FALSE
# 元素間AND
c(TRUE, FALSE, TRUE) & c(TRUE, TRUE, FALSE) # 結果:TRUE FALSE FALSE
# 元素間OR
c(TRUE, FALSE, TRUE) | c(TRUE, TRUE, FALSE) # 結果:TRUE TRUE TRUE
元素間運算符(&,|)特別有趣。它們就像與向量的每個元素進行對話。例如,c(TRUE, FALSE, TRUE) & c(TRUE, TRUE, FALSE)
就像在問每對元素:"你們兩個都是TRUE嗎?"
賦值運算子
賦值運算子就像魔杖一樣——它們讓我們能夠將值存儲在變量中。它們的工作方式如下:
# 基本賦值
x <- 10
print(x) # 輸出:10
# 右賦值
20 -> y
print(y) # 輸出:20
# 等於號賦值
z = 30
print(z) # 輸出:30
在R中,我們通常使用 <-
進行賦值。這就像在說:"將這個值放入這個變量中。" 也有一些R愛好者開玩笑地稱之為"得到箭頭"——也就是說,"x得到10。"
雜項運算子
R還有一些特殊運算子,它們不適合其他類別。這裡有一些:
# %in%運算子(檢查元素是否在向量中)
5 %in% c(1, 3, 5, 7, 9) # 結果:TRUE
# :運算子(創建序列)
1:5 # 結果:1 2 3 4 5
# %*%運算子(矩陣乘法)
matrix(1:4, 2, 2) %*% matrix(5:8, 2, 2)
%in%
運算子特別有用。我曾經有一個學生將它比作檢查一個名字是否在派對的賓客名單上。這是一種有趣的思考方式!
總結來說,R中的運算子是強大的工具,讓我們能夠操作數據、做出決策和創建複雜的演算法。隨著你繼續在R的旅程上前行,你會發現自己越來越多地使用這些運算子。記住,熟能生巧!在自家的R終端中嘗試這些運算子,對它們進行實驗,並不要害怕犯錯誤——這往往是最佳學習發生的時候。
快樂編程,願你的R冒險充滿喜悅和發現!
Credits: Image by storyset