R中的控制流

时间:2022-04-19 00:58:30

语句(statement)一条单独的R语句或一组复合语句(包含在花括号中的一组R语句,使用分号分割)
条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式
表达式(expr)是一条数值或字符串的求值语句
序列(seq)是一个数值或字符串序列

  • 重复和循环
    1.for结构
 for (var in seq) statement

2.while结构

 while(cond)statement
  • 条件执行
    1. if-else结构
 if(cond)statement
if(cond)statement1 else statement2
eg.
if(is.character(grade)) grade <- as.factor(grade)
if(is.character(grade)) grade <- as.factor(grade) else print("Grade already is a factor")

2.ifelse结构

ifelse(cond,statement1,statement2) #if-else结构比较紧凑的向量化版本
ifelse(score > 0.5,print("Passed"),print("Failed")

3.switch结构
switch(expr,…)

feelings <- c("sad","afraid")
for(i in feelings)
print(
switch(i,
happy = "i am glad"
afraid = "there is nothing to fear"
sad = "cheer up"
)
)

R中有若干函数可以用来为函数添加错误捕获和纠正功能,你可以使用函数warning()来生成一条错误提示信息,用message()来生成一条错误诊断信息,或用stop()停止当前表达式的执行并提示错误。一份优秀的参考资料是Ducan Murdoch整理的“Debugging in R”(Debugging in R参考资料