I have a data set that looks like this:
shop_id,item_id,time,value
150,1,2015-07-10,3
150,1,2015-07-11,5
150,1,2015-07-13,2
150,2,2015-07-10,15
150,2,2015-07
Here's a solution with fill_by_value
from padr
:
library(dplyr)
library(tidyr)
library(padr)
df %>%
mutate(time = as.Date(time)) %>%
group_by(item_id) %>%
pad() %>% # from padr
fill(shop_id) %>% # from tidyr
fill_by_value(value) # from padr
Result:
# A tibble: 7 x 4
# Groups: item_id [2]
shop_id item_id time value
1 150 1 2015-07-10 3
2 150 1 2015-07-11 5
3 150 1 2015-07-12 0
4 150 1 2015-07-13 2
5 150 2 2015-07-10 15
6 150 2 2015-07-11 0
7 150 2 2015-07-12 12
Data:
df = read.table(text = "shop_id,item_id,time,value
150,1,2015-07-10,3
150,1,2015-07-11,5
150,1,2015-07-13,2
150,2,2015-07-10,15
150,2,2015-07-12,12", header = TRUE, sep = ",")