R填充时间序列与分组

时间:2016-11-08 12:02:56

标签: r dataframe dplyr

我的数据框包含列操作,类型, 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))

解决它

1 个答案:

答案 0 :(得分:1)

我认为来自complete的{​​{1}}是您正在寻找的。 它需要一个data.frame,然后是要完成的列(确保所有匹配的东西),然后是缺少组合时要插入的值的列表。在此处,tidyr生成dfweek的所有组合,然后只要没有条目,就会使用project_id填充您的唯一其他列(events_in_time

0