与其它高级语言类似,R中也有自己的控制结构,主要包括分支结构和循环结构。灵活使用R的控制结构可以帮助我们处理更加复杂的数据分析任务。
本文首先探讨R中分支结构的if...else结构。
if/else分支结构主要用于两种分支情况下,主要使用格式有三种情况:
(1)只有一个if的结构
if(cond) {expr}
即当括弧中的cond条件为TRUE时,则执行表达式expr,否则跳过后执行其后的语句。
(2)if...else结构
if(cond) {cons.expr} else {alt.expr}
即条件cond为TRUE时,则执行表达式cons.expr,否则执行alt.expr
(3)if的嵌套使用
常见形式如下:
if(cond_1)
{expr_1}
else if(cond_2)
{expr_2}
else if(cond_3)
{expr_3} else {expr_4}
注意:在上面的三种情况下,如果表达式只有一个时,可以省略大括号{};
同时,else部分不能单独在一行,即在else同一行中,else前面应有内容。除非,if...else放在大括号中。
下面是几个例子:
(1)单个if
num <- 6
if(num%%2==0)
print("是偶数")
print("Hello,VeVb.com")
本例子中,%%为求余数运算符,如果num能被2整除余数为0,则输出是偶数,同时不管if的条件是否满足,Hello,VeVb.com的内容都会被输出来。
运行效果如下图所示
(2)if...else
num<-6
if(num%%2==0)
print("是偶数") else print("是奇数") #else不能单独一行,否则报错:意外的'else' in "else"
print("Hello,VeVb.com")
下图给出了num为5,num为6,else单独一行时,if...else放在大括号中时的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("优秀") else
print("成绩不合理")
若将以上内容放在大括号中,会更加直观一些,如下:
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("优秀")
else
print("成绩不合理")
}
本文(完)
新闻热点
疑难解答