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
Post a Comment