elsif语句R Studio中返回错误

时间:2018-06-25 22:23:22

标签: r

此语句应根据allmonths$DIVauth1的值比较,将o的值更改为$cfs$Tess。而是返回以下错误,并将值1放入每一行:

The condition has length > 1 and only the first element will be used.

我的声明:

if (allmonths$cfs >= allmonths$Tess) {
    allmonths$DIVauth <- 1
} else {
    allmonths$DIVauth <- 0
}

1 个答案:

答案 0 :(得分:1)

这按预期工作吗?

allmonths$DIVauth <- ifelse(allmonths$cfs >= allmonths$Tess, 1, 0)

ifelse失败时,为什么if起作用?引用@ karsten-w并修改提供的示例: “ if构造仅在向其传递矢量时才考虑第一个分量(并给出警告)... ifelse函数对每个分量执行检查并返回一个矢量。” else if(){} VS ifelse()

示例:

set.seed(1) # make following random data same for everyone
data <- sample(100, 5)
data
  

[1] 27 37 57 89 20

if(data > 50) {
    print("1st item > 50") 
} else {
    print("1st item <= 50")
}
  

[1]“第一项<= 50”
     警告信息:
     在if(数据> 50){:
         条件的长度> 1,并且只会使用第一个元素

ifelse(data > 50, "> 50", "<= 50")
  

[1]“ <= 50”“ <= 50”“> 50”“> 50”“ <= 50”