1:条件结构(根据判断条件是否成立选择执行A操作或者B操作)
> x <- 1:10 > y <- ifelse(x%%2 == 0, 0, 1) > y [1] 1 0 1 0 1 0 1 0 1 0
ifelse(test, yes, no)
ifelse()是一个函数test是一个布尔值向量,当其为真返回yes的值,反之返回no的值。
> y <- if (x>=0) sqrt(x) else NA Warning message: In if (x >= 0) sqrt(x) else NA : the condition has length > 1 and only the first element will be used > y [1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751 2.828427 3.000000 3.162278
R是一种块(block)状结构程序语言,块是由花括号划分的若干条语句的集合,程序语句有换行符或分号分隔,当else语句比较简单时可以把整个分支写在一行内,此时花括号可以省略。
> if(length(x) == 0) { + cat("Empty vector!\n") + } else { + m = mean(x) + s= sum(x) + } > m [1] 5.5 > s [1] 55
2.循环语句(满足某个条件之前反复执行一个语句)
> for (i in 1:5){ + cat(i, " ") + } 1 2 3 4 5
> while (i <= 5){ + cat(i, " ") + i = i + 1 + } 5
> repeat{ + cat(i, " ") + i <- i + 1 + if (i > 5){ + cat("\n") + break + } + } 6