我对这个循环很感兴趣。我想在“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
}
}
非常感谢您提前
答案 0 :(得分:1)
列表从R中的索引1开始,但是就像你在循环中从1开始执行i-1一样,你的列表超出范围(i-1 = 0),因此你的代码不能返回True或False。