id <- c('1001','1001','1001','1002','1002','1003','1003','1003','1003')
item <- c('milk','bread','cake','milk','sugar','bread','cake','cafe','milk')
df1 <- data.frame(id, item, stringsAsFactors = F)
for (i in c(1:length(df1$id)-1)) {
if (df1$id[i+1] == df1$id) df1$target <- df1$item[i+1]
else (df1$target <- NA)
}
上述代码我贴个截图,因为发现发出来以后格式有点问题:
错误提示:
希望得到:
id item target
1001 milk bread
1001 bread cake
1001 cake NA
1002 milk sugar
1002 sugar NA
1003 bread cake
1003 cake cafe
1003 cafe milk
1003 milk NA
请教各位大神,代码出错在哪,应该怎样得到如上结果?