r - Add a subsequent row to get consecutive IDs -


i have data looks this.

 desctv         dt hr   show1 2016-05-10  0   show2 2016-05-10  2   show3 2016-05-10  4   show4 2016-05-10  6 

but want this.

 desctv         dt hr   show1 2016-05-10  0   show1 2016-05-10  1   show2 2016-05-10  2   show2 2016-05-10  3   show3 2016-05-10  4   show3 2016-05-10  5   show4 2016-05-10  6   show4 2016-05-10  7 

i guess i'm wanting create empty row after each hour change , copy preceding row down give next hour number.

you can use data.table, i.e.

# load data d<- fread("desctv         dt hr show1 2016-05-10  0 show2 2016-05-10  2 show3 2016-05-10  4 show4 2016-05-10  6")  # 2 steps: (1) add rows (2) fill specified values  d.out <- setdt(d)[, .sd[1:(.n+1)], by=list(desctv, dt)  ][, hr:=ifelse(is.na(hr), as.integer((shift(hr)+1)), hr), by=list(desctv, dt)] 

d.out looks that:

# > d.out #    desctv         dt hr # 1:  show1 2016-05-10  0 # 2:  show1 2016-05-10  1 # 3:  show2 2016-05-10  2 # 4:  show2 2016-05-10  3 # 5:  show3 2016-05-10  4 # 6:  show3 2016-05-10  5 # 7:  show4 2016-05-10  6 # 8:  show4 2016-05-10  7 

Comments