2017-08-17 45 views
0

快速R第:我有一个数据集,看起来是这样的:通过水平由上周的日均线

Outlet  weekday visitors Month 
jackInthebox Monday 10   July  
jackInthebox Monday 11   July  
jackInthebox Tues 15   July 
jackInthebox Tues 16   July 
jackInthebox Wed  30   July 
jackInthebox Wed  28   July 
KFC    Monday 50   July 
KFC    Monday 53   July 
KFC    Tues 60   July 
KFC    Tues 64   July 
KFC    Wed  30   July 
KFC    Wed  31   July 

我想做一个移动平均预期,但分组由星期几和网点首先。因此,预测接下来的5个星期一,以及接下来的5个星期二等,以此类推。这是针对每个出口的。并希望添加一个插座标签和星期几标签,所以我知道哪些属于哪个。

现在我试图在for循环中执行它,但遇到它的分组部分的问题。

同样,我们的目标是做一个滚动的平均预期,但基于周和月的一天(忘了,包括在那里。有多个网点,个月)为各出口

任何援助将是伟大的!

+0

什么是样本数据的预期输出? – Wen

回答

0

roll计算5个或更少的滚动平均值(如果不存在5个)。ave将其应用于每个组。

library(zoo) 

roll <- function(x) rollapplyr(x, 5, mean, partial = TRUE) 
transform(DF, ma = ave(visitors, Outlet, weekday, Month, FUN = roll)) 

结果增加了马栏输入:

  Outlet weekday visitors Month ma 
1 jackInthebox Monday  10 July 10.0 
2 jackInthebox Monday  11 July 10.5 
3 jackInthebox Tues  15 July 15.0 
4 jackInthebox Tues  16 July 15.5 
5 jackInthebox  Wed  30 July 30.0 
6 jackInthebox  Wed  28 July 29.0 
7   KFC Monday  50 July 50.0 
8   KFC Monday  53 July 51.5 
9   KFC Tues  60 July 60.0 
10   KFC Tues  64 July 62.0 
11   KFC  Wed  30 July 30.0 
12   KFC  Wed  31 July 30.5 

注:这是在假定输入DF

Lines <- " 
Outlet  weekday visitors Month 
jackInthebox Monday 10   July  
jackInthebox Monday 11   July  
jackInthebox Tues 15   July 
jackInthebox Tues 16   July 
jackInthebox Wed  30   July 
jackInthebox Wed  28   July 
KFC    Monday 50   July 
KFC    Monday 53   July 
KFC    Tues 60   July 
KFC    Tues 64   July 
KFC    Wed  30   July 
KFC    Wed  31   July" 

DF <- read.table(text = Lines, header = TRUE, as.is = TRUE) 
+0

我收到此错误消息。有机会知道可能是什么原因。错误在seq.default(start.at,NROW(data),by = by): 错误登录'by'参数 –

+0

开始新的R会话。将代码复制并粘贴到答案末尾的注释中,然后将代码复制并粘贴到答案的正文中。 –

+0

我不确定我是否遵循,但会做。 –