else if(){} VS ifelse()

时间:2013-06-22 16:33:44

标签: r vector if-statement

为什么我们可以在ifelse()else if(){}声明中使用with()而不是within()

我听说第一个是可矢量化而不是后者。这是什么意思?

2 个答案:

答案 0 :(得分:13)

if构造仅在向量传递向量时考虑第一个组件(并给出警告)

if(sample(100,10)>50) 
    print("first component greater 50") 
else 
    print("first component less/equal 50")

ifelse函数对每个组件执行检查并返回一个向量

ifelse(sample(100,10)>50, "greater 50", "less/equal 50")

ifelse函数对transform非常有用。它通常很有用 在&条件中使用|ifelse,在&&中使用||if

答案 1 :(得分:9)

回答你的第二部分:

* 当x的长度为1但y的长度大于1时使用if

 x <- 4
 y <- c(8, 10, 12, 3, 17)
if (x < y) x else y

[1]  8 10 12  3 17
Warning message:
In if (x < y) x else y :
  the condition has length > 1 and only the first element will be used

当x的长度为1但y的长度大于1时使用ifelse

ifelse (x < y,x,y)
[1] 4 4 4 3 4