想在R中的循环中运行forecast()?

时间:2017-07-14 02:54:41

标签: r loops subset

我有一个名称和值的数据集,例如

Date    Name    Value
01/01/17    Miles ran   1.2
02/01/17    Miles ran   1.2
03/01/17    Miles ran   1.3
04/01/17    Miles ran   1.4
05/01/17    Miles ran   1.4
06/01/17    Miles ran   1.6
07/01/17    Miles ran   1.5
08/01/17    Miles ran   1.8
09/01/17    Miles ran   1.7
10/01/17    Miles ran   2.1
01/01/17    Calories consumed   2300
02/01/17    Calories consumed   2200
03/01/17    Calories consumed   2250
04/01/17    Calories consumed   2410
05/01/17    Calories consumed   1980
06/01/17    Calories consumed   2000
07/01/17    Calories consumed   1900
08/01/17    Calories consumed   2400
09/01/17    Calories consumed   2150
10/01/17    Calories consumed   1900

我希望能够对数据运行各种计算,例如能够对面板数据中每个单独时间序列(已定义的日期)的数据运行forecast()函数。

但是,我不确定如何使用子集循环。例如我必须每次都为子集定义名称引用,而宁愿通过循环来实现这一点,该循环依次运行每个子集的计算。

这是我目前的代码:

listofids=as.character(unique(mydata$Name))
mylist1 <- split(mydata, mydata$Name)
mylist1
df1<-data.frame(mylist[1])

listofids=as.character(unique(mydata$Name))
mylist2 <- split(mydata, mydata$Name)
mylist2
df2<-data.frame(mylist[2])

forecast(df1$Value,h=365-Number_of_Days)

我们的想法是将面板数据划分为单独的数据集,然后进行预测。但是,如上所示,我需要为每个单独的数据框运行单独的预测,并希望将其循环。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用plyr,你应该按&#34; Name&#34;然后使用mutate

my.summaries <- ddply(mydataedited, .(Name), mutate, cumeValue = cumsum(Value))

     Name Value cumeValue
1   Apple    41        41
2   Apple    22        63
3   Apple    11        74
4   Apple    13        87
5   Apple    37       124
6   Apple    26       150
7   Apple    13       163
8   Apple    45       208
9   Apple    31       239
10 Banana     9         9
11 Banana    10        19
12 Banana    11        30
13 Banana    17        47
14 Banana    10        57
15 Banana    24        81
16 Banana    27       108
17 Banana    25       133
18 Banana    28       161
19 Banana    34       195
20 Banana    46       241