根据另一个变量创建日期序列

时间:2016-12-23 10:32:37

标签: r shiny

我的工作需要一些帮助; 我有一个像这样的数据集:

<system.web>
    <trust level="Full" />
</system.web>

我需要为变量COD的eache值创建所有日期的序列,从最小值(例如:对于COD 87,最小日期是2014-01-02)到DATE COD QTA 2014-01-02 87 11 2014-01-05 87 5 2015-02-03 45 3 2015-06-21 45 92 2014-09-18 74 34 2015-04-21 74 27 。我希望得到的最终结果是:

Sys.Date()

我该怎么做?谢谢你们!

1 个答案:

答案 0 :(得分:1)

data.table解决方案:

require(data.table)
dt<-as.data.table(df)
dt[dt[,list(DATE=seq(min(DATE),Sys.Date(),by="day")),by=COD],
      on=c("COD","DATE")][,QTA:=ifelse(is.na(QTA),0,QTA)][]
#            DATE COD QTA
#   1: 2014-01-02  87  11
#   2: 2014-01-03  87   0
#   3: 2014-01-04  87   0
#   4: 2014-01-05  87   5
#   5: 2014-01-06  87   0
#  ---                   
#2601: 2016-12-19  74   0
#2602: 2016-12-20  74   0
#2603: 2016-12-21  74   0
#2604: 2016-12-22  74   0
#2605: 2016-12-23  74   0