R:if-else错误

时间:2015-06-04 11:30:25

标签: r if-statement

使用以下if-else语句创建变量时遇到问题:

# create data #

df<-as.data.frame(c(10:14))
colnames(df)<-"a"
df$m1<-c(1:5)
df$m2<-c(2,1,4,3,5)


# if-else statement #

if (df$m1 < df$m2) {
       df$a2 <- df$a - 1
} else if (df$m1 >= df$m2) {
       df$a2 <- df$a
} else {
       df$a2 <- 99
}

这会产生以下错误:

Warning message:
In if (df$m1 < df$m2) { :
  the condition has length > 1 and only the first element will be used

对所有价值观都如此有效:

df$a2 <- df$a - 1

我的花括号似乎在正确的位置,所以我不明白发生了什么。

解决方案:感谢felixmc的评论

for(i in 1:nrow(df)){
  if (df$m1[i] < df$m2[i]) {
         df$a2[i] <- df$a[i] - 1
  } else if (df$m1[i] >= df$m2[i]) {
         df$a2[i] <- df$a[i]
  } else {
         df$a2[i] <- 99
  }
}

0 个答案:

没有答案