《R語言實戰(zhàn)》學習筆記---Chapter5(7) 高級數(shù)據(jù)管理 控制流-條件執(zhí)行

在條件執(zhí)行結(jié)構(gòu)中, 一條或一組語句僅在滿足一個指定條件時執(zhí)行。 R中的條件執(zhí)行結(jié)構(gòu)包括if-else 、 ifelseswitch 。
分別進行說明。

if-else 結(jié)構(gòu)

if-else 結(jié)構(gòu)在某個給定的條件為真時執(zhí)行語句。也可以在條件為假時執(zhí)行其他的語句。語法為:

if (cond) statement
if (cond) statement1 else statement2

試舉一例:

> wd <- "high"
> if(is.character(wd)) grade <- as.factor(wd) else print("wd is not character.")
> wd
[1] "high"
> wd <- 1
> if(is.character(wd)) grade <- as.factor(wd) else print("wd is not character.")
[1] "wd is not character."

如果后面的語句占用多行,則可以加上大括號。

> wd <- 1
> if(is.character(wd)) {
+   grade <- as.factor(wd) } else { 
+     print("wd is not character.") }
[1] "wd is not character."

ifelse 結(jié)構(gòu)

ifelse 結(jié)構(gòu)是if-else結(jié)構(gòu)比較緊湊的向量化版本, 其語法為:

ifelse(cond, statement1, statement2)

statement1cond條件為時執(zhí)行的語句,statement2cond條件為時執(zhí)行的語句。

> dt <- NULL
> dt$pvalue <- c(0.05, 0.07, 0.12, 0.15)
> dt$change <- ifelse(dt$pvalue >= 0.1, "High", "Down")
> dt
$pvalue
[1] 0.05 0.07 0.12 0.15

$change
[1] "Down" "Down" "High" "High"

輸出為向量。
上面的例子解釋一下,條件是pvalue是否大于等于0.1,如果為真時change值為High,為假時change值為Down

switch 結(jié)構(gòu)

switch根據(jù)一個表達式的值選擇語句執(zhí)行。 語法為:

switch(expr, ...)

直接引用書中的例子吧,能夠很典型地說明switch函數(shù)的用法。

> feelings <- c("sad", "afraid")
> for (i in feelings)
+   print(
+     switch(i,
+            happy = "I am glad you are happy",
+            afraid = "There is nothing to fear",
+            sad = "Cheer up",
+            angry = "Calm down now"
+     )
+   )
[1] "Cheer up"
[1] "There is nothing to fear"
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容