以下是您提供的文本的繁體中文翻譯:
# R - 決策製定:初學者指南
你好,未來的R語言編程師!我很興奮能成為你進入R語言決策世界中的引路人。作為一個教了多年計算機科學的人,我看見無數學生在掌握這些概念時眼睛發亮。所以,讓我們一起跳進去,來做些決策吧!
## 編程中的決策製定是什麼?
在我們深入R語言的具體內容之前,讓我們先來討論一下在編程中決策製定意味著什麼。想像你在一個冰淇淋店。你會隨手拿第一個看到的口味嗎?不會,你是基於自己的偏好來做決策的。編程也是一樣 - 我們希望我們的代碼能夠根據某些條件來做選擇。
## R語言中的基本決策製定:`if` 語句
### 語法結構
讓我們從R語言中最基本的決策製定工具開始:`if` 語句。這裡是它基本的結構:
```r
if (條件) {
# 如果條件為TRUE時要執行的代碼
}
一個簡單的例子
讓我們假設我們想要檢查一個數字是否為正數。這是我們如何做到這一點:
x <- 5
if (x > 0) {
print("x 是正數")
}
當你運行這段代碼時,你會看到打印出 "x 是正數"。為什麼?因為5的確大於0,所以條件 x > 0
是為TRUE。
添加 else
條件
但如果我们想在條件為FALSE時做些什麼呢?這就是 else
條件的作用:
x <- -3
if (x > 0) {
print("x 是正數")
} else {
print("x 不是正數")
}
運行這段代碼,你會看到 "x 不是正數"。else
條件給我們提供了一種處理FALSE情況的方法。
更複雜的決策:else if
有時候,生活(和編程)並不只有黑白兩色。我們可能需要檢查多個條件。這時,我們可以使用 else if
:
x <- 0
if (x > 0) {
print("x 是正數")
} else if (x < 0) {
print("x 是負數")
} else {
print("x 是零")
}
這段代碼檢查x是正數、負數還是零。這就像是一本數字的選擇自己的冒險書!
威力無窮的 switch
語句
當你有多個特定的情況需要檢查時,switch
語句可以是你的好夥伴。它就像是一台代碼執行的自動售貨機:
day <- "Monday"
mood <- switch(day,
"Monday" = "需要咖啡",
"Friday" = "TGIF!",
"這是個普通的日子"
)
print(mood)
這將會打印出 "需要咖啡"。switch
語句匹配 day
的值與選項,並返回對應的值。
使用 ifelse()
進行條件執行
R語言有一個非常方便的函數叫做 ifelse()
,它將if-else語句結合成一行:
x <- 10
result <- ifelse(x > 5, "大於5", "不大於5")
print(result)
這會打印出 "大於5"。ifelse()
函數對於快速、簡單的條件非常有用。
比較運算符:條件的基石
為了做出決策,我們需要比較值。這裡是R語言中的比較運算符:
運算符 | 意義 |
---|---|
< |
小於 |
> |
大於 |
<= |
小於或等於 |
>= |
大於或等於 |
== |
等於 |
!= |
不等於 |
例如:
a <- 5
b <- 10
print(a < b) # TRUE
print(a == b) # FALSE
邏輯運算符:組合條件
有時候,我們需要同時檢查多個條件。這時候,邏輯運算符就派上用場了:
運算符 | 意義 |
---|---|
& |
AND |
| |
OR |
! |
NOT |
以下是如何使用它們的例子:
age <- 25
has_license <- TRUE
if (age >= 18 & has_license) {
print("你可以開車")
} else {
print("你不能開車")
}
這檢查某人是否既達到法定年齡又擁有駕駛執照,然後才允許他們開車。
組合所有內容:一個真實世界的例子
讓我們創建一個簡單的評分系統:
grade_student <- function(score) {
if (score >= 90) {
return("A")
} else if (score >= 80) {
return("B")
} else if (score >= 70) {
return("C")
} else if (score >= 60) {
return("D")
} else {
return("F")
}
}
# 我們來測試我們的函數
students <- c("Alice", "Bob", "Charlie")
scores <- c(95, 82, 65)
for (i in 1:length(students)) {
grade <- grade_student(scores[i])
print(paste(students[i], "得到了", grade, "的成績"))
}
這個腚本定義了一個函數,用於根據數字分數分配字母成績,然後將其應用於一個學生列表。
結論
恭喜你!你剛剛踏入了R語言決策製定的世界。記住,就像學習任何新技能一樣,熟能生巧。不要害怕嘗試這些概念 - 那是真正學習發生的時候!
在我多年的教學中,我發現那些隨意玩弄代碼、弄壞東西然後再修好的學生往往能更深入地理解這些概念。所以,勇往直前,讓你的代碼做出決策,並且玩得開心吧!
Credits: Image by storyset