我认为我遇到的问题应该是常见的,但由于某种原因我到目前为止找不到好的答案,所以这是我的问题 - 我正在使用R进行时间序列分析,我的数据看起来像
time_period customer# sales_amt sales_qty
2013/01 123 $xxx,xxx.xx xxx
2013/01 345 $yyy,yyy.yy yyy
2013/02 ....
到目前为止,我可以逐个手动为每个客户做这件事,但是当我有超过100个客户时,不可能这样做,我希望能够一次性完成为了包括所有客户,稍后我还必须包括其他输入变量,比如客户#以外的销售区域,我应该如何包含这些额外的输入变量?
答案 0 :(得分:0)
我认为这不是一个答案,因为你没有问一个确切的问题。这是一个建议或如何做到这一点。
首先您应该创建一个包含所有变量的data.frame。
然后,要按组处理您的数据,一种方法是使用ddply
中的plyr
来使用split-apply-bind
范例。例如,假设dat
是您的data.frame。
## process by customer
ddply(dat,.(customer),
function(x){
## here you procces each time customer time series
xts(x$sales_amt,x$time_period)
})
## by customer and by region
ddply(dat,.(customer,region),
function(x){
## here you procces each time customer time series
xts(cbind(x$sales_amt,x$sales_qty),x$time_period)
})
请注意,我使用xts
包来处理时间序列对象。