R - 運算子:初學者的友好指南

你好,未來的R語言編程師!我很興奮能成為你探索R運算子世界的引路人。作為一個教了多年計算機科學的人,我可以告訴你,理解運算子就像學習木匠工具箱中的基本工具一樣——它們是建造驚艷事物的關鍵!

R - Operators

運算子的類型

在我們深入之前,讓我們快速看一下我們將要探索的運算子類型:

運算子類型 說明
誌算運算子 用於基本數學操作
間係運算子 用於比較值
邏輯運算子 用於布爾操作
賦值運算子 用於變量賦值
雜項運算子 為特定任務的特殊運算子

現在,讓我們捋起袖子開始吧!

誌算運算子

誌算運算是編程的基石。它們讓我們能夠進行基本的數學操作。讓我們看看一些例子:

# 加法
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