17

我想写一个如下形式的 if 语句:

a=5
b=2

la<-function(a,b){
if(a>3){a}
else{b}
}

现在我想做的不仅仅是在 if 语句中有一个动作,而是两个,例如:

if(a>3){a and c<<-1000}

在这种情况下,返回 'a' 并在变量 'c' 中写入 1000

我的问题是如何在 if 语句之后执行多个操作。

4

1 回答 1

26

你应该使用分号

if(a>3){c<-1000;a}

最后一条语句是返回值。

编辑这也适用于多个语句。如果使用换行符,可以省略分号,如

if(a>3) {
  c<-1000
  d<-1500
  a
} else {
  e <- 2000
  b
}

编辑:这也应该适用ifelse。但是,您必须记住,您正在对向量进行操作。这是一个例子:

x <- sample(10, 100, replace=TRUE)
ifelse(x>3, {y <- 100; y+x}, x)

这只会给 x 中大于 3 的元素加 100。

于 2012-12-31T10:57:33.263 回答