我的数据框包含列操作,类型, project_id,周,events_in_time
我想对action,type定义的每个子组运行一些分析。 目前我的填充时间序列(列周)有问题。对于某些项目,我在给定的一周内没有任何参赛作品。
如何在events_in_time中为所有项目中的缺失周数添加0个值?
我尝试按照此处所述进行合并:https://bocoup.com/weblog/padding-time-series-with-r生成所有周并合并但没有任何反应。我知道我可能需要为所有项目生成这个,但我找不到如何做到这一点。 我做了什么:
all.week.frame=data.frame(week=seq(0,12)) # i now it only fills first 12 weeks
merged=merge(data, all.week.frame, all=T)
示例数据: http://pastebin.com/au3EfbGA
保存到文件并使用
加载data= read.table("merged.csv", header = TRUE, sep = ",")
更新: 我发现使用
complete(data_filtered, nesting(type,action, project_id), week, fill = list(events_in_time = 0))
解决它
答案 0 :(得分:1)
我认为来自complete
的{{1}}是您正在寻找的。
它需要一个data.frame,然后是要完成的列(确保所有匹配的东西),然后是缺少组合时要插入的值的列表。在此处,tidyr
生成df
和week
的所有组合,然后只要没有条目,就会使用project_id
填充您的唯一其他列(events_in_time
)
0