У меня есть этот фрейм данных, который имеет 3 столбца спецификации, publish_date и цену.Добавлен реплицирующий код:
x=as.data.frame(c("3/4inches|20x20|4.56",
"3/4inches|20x21|5.56","3/4inches|20x22|7.11"))
x1=do.call("rbind",replicate(3,x,simplify = F))
colnames(x1)="specification"
sd=as.data.frame(seq(as.Date("2017-08-01"),as.Date("2017-08-03"),by = "day"))
sd=sd[rep(seq_len(nrow(sd)), each=3),]
sd=data.frame(sd)
colnames(sd)="publish_date"
price=data.frame(c(12.34,12.54,""))
price=do.call("rbind",replicate(3,price,simplify = F))
colnames(price)="price"
df.sample=cbind(sd,x1,price)
df.sample
publish_date specification price
1 2017-08-01 3/4inches|20x20|4.56 12.34
2 2017-08-01 3/4inches|20x21|5.56 12.54
3 2017-08-01 3/4inches|20x22|7.11
4 2017-08-02 3/4inches|20x20|4.56 12.34
5 2017-08-02 3/4inches|20x21|5.56 12.54
6 2017-08-02 3/4inches|20x22|7.11
7 2017-08-03 3/4inches|20x20|4.56 12.34
8 2017-08-03 3/4inches|20x21|5.56 12.54
9 2017-08-03 3/4inches|20x22|7.11
Предположим, что цена на дату "2017-08-01" и спецификация "3 / 4inches | 20x22 | 7.11" равна 16,14, затем на следующую дату ценадля той же спецификации должен отображаться как 16.14.
publish_date specification price
1 2017-08-01 3/4inches|20x20|4.56 12.34
2 2017-08-01 3/4inches|20x21|5.56 12.54
3 2017-08-01 **3/4inches|20x22|7.11** **16.14**
4 2017-08-02 3/4inches|20x20|4.56 12.34
5 2017-08-02 3/4inches|20x21|5.56 12.54
6 2017-08-02 3/4inches|20x22|7.11 **16.14**
7 2017-08-03 3/4inches|20x20|4.56 12.34
8 2017-08-03 3/4inches|20x21|5.56 12.54
9 2017-08-03 3/4inches|20x22|7.11 **16.14**
Следовательно, чтобы подвести итог запроса: для дат, когда цена отсутствует, мне нужно проверить дату предыдущих дней, затем сопоставить спецификацию и затем вытащитьцена от предыдущей даты до текущей даты.
Заранее спасибо!Фактические данные имеют проверку местоположения наряду с 35678 днями, 67 спецификациями. Поэтому вводные данные будут полезны.