если еще несколько условий сравнения строк - PullRequest
0 голосов
/ 29 мая 2018

Я борюсь с этой петлей.Я хочу получить «6» во второй строке столбца «Newcolumn». Я получаю следующую ошибку.

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 голосов
/ 29 мая 2018

Список начинается с индекса 1 в R, но, как если бы вы выполняли i-1 в цикле, начинающемся с 1, ваш список выходит за пределы диапазона (i-1 = 0), поэтому ваш код не может возвращать значения True или False.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...