0

我想通过因子键计算 cumsum。详细地说,如果您要按因子键拆分向量时间,请计算 的 cumsum 1:length(subvector)。但我喜欢为整个向量做这件事,这样我就不会失去与索引的关系。

a<-as.POSIXlt("2013-07-01 00:00:00",origin = "1960-01-01",tz="GMT")
b<-as.POSIXlt("2013-07-08 00:00:00",origin = "1960-01-01",tz="GMT")
week1<-sample(seq(as.numeric(a),by=60*60,length.out=200),200,T)
week2<-sample(seq(as.numeric(b),by=60*60,length.out=200),200,T)
times<-c(week1,week2)
class(times)<-c("POSIXt","POSIXct")
times<-as.POSIXlt(times,origin = "1960-01-01",tz="GMT")
key<-sample(LETTERS[1:3],200,T)
df<-data.frame(times=times,order=factor(rep(1:2,each=100)), key=key)

随之而来的另一个问题是,如何使用 x-axis=time 和 y-axis=new_cumsum_vector 制作点图,并在间隔内收集 y 值。因此,对于 x 轴上的间隔,有一个 y 坐标,它表示每个键的 new_cumsum_vector 中所有条目的总和。

4

1 回答 1

0

你喜欢这个吗?

library(plyr)
df$times<-as.Date(times,format="%Y-%m-%d")
mysum<-ddply(df,.(times,key),summarize,msum=sum(as.numeric(order)))
> head(mysum)
       times key msum
1 2013-07-01   A   12
2 2013-07-01   B   15
3 2013-07-01   C   13
4 2013-07-02   A    9
5 2013-07-02   B   15
6 2013-07-02   C   16
于 2013-08-15T16:16:44.400 回答