與其它高級(jí)語言類似,R中也有自己的控制結(jié)構(gòu),主要包括分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。靈活使用R的控制結(jié)構(gòu)可以幫助我們處理更加復(fù)雜的數(shù)據(jù)分析任務(wù)。
本文首先探討R中分支結(jié)構(gòu)的if...else結(jié)構(gòu)。
if/else分支結(jié)構(gòu)主要用于兩種分支情況下,主要使用格式有三種情況:
(1)只有一個(gè)if的結(jié)構(gòu)
if(cond) {expr}
即當(dāng)括弧中的cond條件為TRUE時(shí),則執(zhí)行表達(dá)式expr,否則跳過后執(zhí)行其后的語句。
(2)if...else結(jié)構(gòu)
if(cond) {cons.expr} else {alt.expr}
即條件cond為TRUE時(shí),則執(zhí)行表達(dá)式cons.expr,否則執(zhí)行alt.expr
(3)if的嵌套使用
常見形式如下:
if(cond_1)
{expr_1}
else if(cond_2)
{expr_2}
else if(cond_3)
{expr_3} else {expr_4}
注意:在上面的三種情況下,如果表達(dá)式只有一個(gè)時(shí),可以省略大括號(hào){};
同時(shí),else部分不能單獨(dú)在一行,即在else同一行中,else前面應(yīng)有內(nèi)容。除非,if...else放在大括號(hào)中。
下面是幾個(gè)例子:
(1)單個(gè)if
num <- 6
if(num%%2==0)
print("是偶數(shù)")
print("Hello,VeVb.com")
本例子中,%%為求余數(shù)運(yùn)算符,如果num能被2整除余數(shù)為0,則輸出是偶數(shù),同時(shí)不管if的條件是否滿足,Hello,VeVb.com的內(nèi)容都會(huì)被輸出來。
運(yùn)行效果如下圖所示
(2)if...else
num<-6
if(num%%2==0)
print("是偶數(shù)") else print("是奇數(shù)") #else不能單獨(dú)一行,否則報(bào)錯(cuò):意外的'else' in "else"
print("Hello,VeVb.com")
下圖給出了num為5,num為6,else單獨(dú)一行時(shí),if...else放在大括號(hào)中時(shí)的4中情況下的輸出情況:
(3)if/else的嵌套情況
score <- 89
if( score>=0 && score<60)
print("不及格") else if(score < 70)
print("及格") else if(score < 80)
print("中等") else if(score < 90)
print("良好") else if(score <= 100)
print("優(yōu)秀") else
print("成績不合理")
若將以上內(nèi)容放在大括號(hào)中,會(huì)更加直觀一些,如下:
score <- 89
{
if( score>=0 && score<60)
print("不及格")
else if(score < 70)
print("及格")
else if(score < 80)
print("中等")
else if(score < 90)
print("良好")
else if(score <= 100)
print("優(yōu)秀")
else
print("成績不合理")
}
本文(完)
新聞熱點(diǎn)
疑難解答