R条件语句

2020-06-08 11:27:04 浏览数 (2)

if 语句可以使得你有条件地执行代码。其形式如下所示:

单个条件判断
代码语言:javascript复制
if (condition) {
# 条件为真时执行的代码
                } else {
# 条件为假时执行的代码 }
多重条件

你可以将多个 if 语句串联起来:

代码语言:javascript复制
if (this) {
# 做一些操作
} else if (that) { # 做另外一些操作
} else {
#
}

但如果你有一长串 if 语句,那么就要考虑重写了。重写的一种方法是使用 switch() 函数, 它先对第一个参数求值,然后按照名称或位置在后面的参数列表中匹配返回结果:

代码语言:javascript复制
function(x, y, op) {
  switch(op,
         plus = x   y,
         minus = x - y,
         times = x * y,
         divide = x / y,
         stop("Unknown op!")
         )
  }
代码风格

if 和 function 后面总是要跟着一对大括号({}),其中的内容应该缩进两个空格。这样通 过左侧空白就可以很容易地知道代码层次。 左大括号不应该自己占一行,而且后面要换行。右大括号应该自己占一行,除非后面跟着 else。大括号中的代码一定要缩进:

代码语言:javascript复制
if (y < 0 && debug) {
       message("Y is negative")
     }
if (y == 0) {
                       log(x)
     } else {
y^ x }

如果 if 语句非常短,可以在一行内写下,那么可以不用大括号:

代码语言:javascript复制
y <- 10
x <- if (y < 20) "Too low" else "Too high"

我们建议只对特别短的 if 语句采用这种形式,其他情况下还是完整形式更易于阅读:

代码语言:javascript复制
     if (y < 20) {
       x <- "Too low"
     } else {
       x <- "Too high"
}

选自《R数据科学》

0 人点赞