У меня есть два кадра данных:
df1<-data.frame(ID = c(1,1,2,3,3,4,5,6),
week = c(20,23,10,15,20,40,10,12),
var1 = rep(1, 8))
df2<-data.frame(ID=c(1,1,1,2,2,3,5),
week = c(18,19,22,8,9,14,9),
var1= rep(0,7))
Я хотел бы объединить их со следующими условиями:
1. Keep all of df1
2. Only add the rows from df2 where the df2$week = df1$week-1
Вывод будет выглядеть следующим образом:
ID week var1
1 1 19 0
2 1 20 1
3 1 22 0
4 1 23 1
5 2 9 0
6 2 10 1
7 3 14 0
8 3 15 1
9 5 9 0
10 5 10 1
11 6 12 1
Это вариант предыдущего вопроса, в котором спрашивается, как сохранить строку в одном условии и строку над ним в другом.С тех пор я разбил данные на два фрейма данных, предполагая, что их условно легче связать.Я попытался:
df3<-rbind.data.frame(ifelse(df2$ID==df1$ID & df2$week==df2$week-1, df1, df2))
Но я получаю сообщение об ошибке:
longer object length is not a multiple of shorter object length.
Я чувствую, что это очень близко к получению желаемого результата, но я не очень опытен сrbind.Спасибо!