R 聚合依赖于日期的变量

R 聚合依赖于日期的变量,r,R,我有一个包含大量日期点和数据点的大数据集。请参见这里的一个简单示例 Date x y id update-size 01.01 1 1 1 01.02 2 3 1 2345 01.03 4 2 1 01.01 5 7 2 3654 01.02 2 6 2 01.03 3 2 2 4789 我想在每

我有一个包含大量日期点和数据点的大数据集。请参见这里的一个简单示例

Date     x     y     id     update-size
01.01    1     1      1
01.02    2     3      1     2345
01.03    4     2      1
01.01    5     7      2     3654
01.02    2     6      2
01.03    3     2      2     4789
我想在每个软件更新之间聚合数据(x,y)。换句话说:如果有更新,则获取此更新和上次更新(或第一个数据点)之间的所有数据,并将其聚合


提前感谢。

诸如
aggregate
tapply
等功能以及
plyr
dplyr
和相关软件包中的工具将为您进行聚合。但所有这些都需要一个单一的变量来定义要聚合的组

对于您的简单示例,您可以使用以下代码创建分组变量:

group <- cumsum(!is.na(mydata[['update-size']])

请显示所示示例的预期输出。不清楚要如何聚合
> mydata <- data.frame(Date=c('01.01','01.02','01.03','01.01','01.02','01.03'),
+                    x=c(1,2,4,5,2,5),
+                    y=c(1,3,2,7,6,2),
+                    id=c(1,1,1,2,2,2),
+                    update.size =c(NA,2345,NA,2345,NA,4789)
+ )
> 
> group <- cumsum(!is.na(mydata$update.size))
> 
> # above aggregates with values after update
> # this line changes to aggregate with before
> group[ !is.na(mydata$update.size) ] <- group[ !is.na(mydata$update.size) ] -1
> 
> 
> aggregate(mydata[,2:4], list(group), FUN=sum)
  Group.1 x y id
1       0 3 4  2
2       1 9 9  3
3       2 7 8  4
>