此语句应根据allmonths$DIVauth
和1
的值比较,将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
}
答案 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”