在R语言中使用多个操作的条件语句

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语句之后放置多个操作。
1个回答

27

你应该使用分号。

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。


如果我有三个,是否也适用?比如:c<-1000; d<-1500; a ? - user1723765
3
请注意,当在函数中使用时,此操作不会返回 c、d 和 a,只会返回 a。 - Paul Hiemstra
我正在寻找与ifelse() R函数相同的解决方案,如何将多个操作作为第二个参数传递? - Tomás Navarro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接