詳解R語言中if語句的使用方法

在程序語言中,if一般屬於一種分支結構,即根據某個條件執行相關的語句,在R中也不例外。同時,if語句與else配合可以運用到多種條件遞歸判斷中。

單個if語句

if(cond) {expr} 其它語句

即當括弧中的cond條件為TRUE時,則執行表達式expr,否則跳過後執行其後的語句。

num

if(num %% 2 ==0) print("是偶數")

print("執行完畢!")

詳解R語言中if語句的使用方法

例子中的%%是求模運算,即求兩個數除法的餘數。將上面的例子的num改成一個偶數時:

詳解R語言中if語句的使用方法

從這兩個例子中可以看出,if的條件如果滿足,則執行僅挨著if語句的那一條語句,不滿足則執行if語句後面的其它語句。if中可以有多個語句,看下面的例子:

詳解R語言中if語句的使用方法

if...else結構

其執行原理為:如果if後的條件滿足,則執行if與else間的語句,否則執行離else最近的一條語句,如果if塊和else塊有多條語句,需要將多個語句放在花括號中。

if條件滿足時的情況:

詳解R語言中if語句的使用方法

if條件滿足時

if條件不滿足時的情況:

詳解R語言中if語句的使用方法

if條件不滿足時

每個分支有多個語句時,需要放在花括號中:

詳解R語言中if語句的使用方法

每個分支有多個語句的情況

需要注意的是,else不能單獨成一行,它的前邊必須有內容,哪怕像上面圖中所示的一個花括號也可以,否則會報如下的錯誤:

詳解R語言中if語句的使用方法

else一行前面無內容時會報錯

改成下面的樣子就可以正確了:

詳解R語言中if語句的使用方法

else一行前面有內容時

或者else單獨成行時,也可以將if 和else語句整體放在一個花括號裡:

將if...else整體放在花括號裡的情況

多個if...else嵌套情況

有時我們在處理實際問題時,可能有多個條件,根據不同的條件選擇不同的分支執行,其結構可能是:

(1) if(條件1){語句塊1} else if(條件2){語句塊2} ... else{語句塊}

(2)if(條件){if(條件1){語句塊1} else{語句塊2} else if(條件2}{if(條件3}...else...} else...

這樣就可以幫助我們實現更加複雜的處理。下面看一個例子,就是輸入一個分數,輸出其對應的等級。

詳解R語言中if語句的使用方法

多個條件時

如果將語句放在花括號裡,要更加清晰一些:

詳解R語言中if語句的使用方法

放在花括號裡

歡迎關注本號。本號將持續更新R語言方面的文章,內容由淺入深,由基本語法到具體的數據分析應用,將我個人在實際中的工作心得分享給大家。


分享到:


相關文章: