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
>