if else比较行的多个条件

时间:2018-05-29 09:14:14

标签: r for-loop if-statement rows multiple-conditions

我对这个循环很感兴趣。我想在“Newcolumn”列的第二行得到“6”。我得到以下错误。

Error in if (mydata$type_name[i] == "a" && mydata$type_name[i -  : 
missing value where TRUE/FALSE needed.

我创建的代码:

id  type_name   name    score   newcolumn
1   a   Car 2   2
1   a   van 2   6
1   b   Car 2   2
1   b   Car 2   2

mydata$newcolumn <-c(0)
for (i in 1:length(mydata$id)){
  if ((mydata$type_name [i] == "a") && (mydata$type_name[i-1] == "a") && ((mydata$name[i]) != (mydata$name[i-1]))){
    mydata$newcolumn[i]=mydata$score[i]*3 }
  else {
    mydata$newcolumn[i]=mydata$score[i]*1
  }
}

非常感谢您提前

1 个答案:

答案 0 :(得分:1)

列表从R中的索引1开始,但是就像你在循环中从1开始执行i-1一样,你的列表超出范围(i-1 = 0),因此你的代码不能返回True或False。