【问题标题】:Want to run forecast() within a loop in R?想要在 R 的循环中运行 forecast() 吗?
【发布时间】:2017-07-14 02:54:41
【问题描述】:

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

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

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

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

这是我当前的代码:

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)

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

【问题讨论】:

  • 你有没有想过用dplyr代替plyr和一个循环?

标签: r loops subset


【解决方案1】:

使用 plyr,您应该按“名称”分组,然后使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多