我的工作需要一些帮助; 我有一个像这样的数据集:
<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()
我该怎么做?谢谢你们!
答案 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