2010-10-21 24 views
4

我有一个data.frame,包含几个月的历史数据。我想在这个data.frame的末尾添加一个预测。如何将日期和预测添加到data.frame?

例如,我可以运行以下内容来创建一个简单的示例data.frame。

months <- c("2010-10-17","2010-10-18","2010-10-19","2010-10-20") 
revenue <- c(10000,11000,10500,9500) 

results <- data.frame(months,revenue) 

并运行此函数来生成预测。

forecast(results$revenue) 

我坚持的是什么如何添加日期顺序月的休息,包括从预测正确的价值观。我想生成一些看起来像这样的东西,将30天的预测添加到历史数据中。

> print(results) 
     months revenue 
1 2010-10-17 10000 
2 2010-10-18 11000 
3 2010-10-19 10500 
4 2010-10-20 9500 
5 2010-10-21 10250 
6 2010-10-22 10250 
7 2010-10-23 10250 
8 2010-10-24 10250 
9 2010-10-25 10250 
10 2010-10-26 10250 
11 2010-10-27 10250 
12 2010-10-28 10250 
13 2010-10-29 10250 
14 2010-10-30 10250 
15 2010-10-31 10250 

任何帮助表示赞赏。谢谢。

回答

2

这是几乎可以肯定不是这样做的理想方式,但它会得到你在那里:

#Get the sequence from a date to another date 
date.seq <- as.Date("2010-10-17"):as.Date("2010-10-31") 

#Unfortunately, add.dates is numeric - but can easily be converted back to 
#dates if you know the origin (which you can find at ?Date) 
new.dates <- data.frame(months = as.Date(date.seq, origin = "1970-01-01"), 
         revenue = NA) 

#Slap it on to your existing dates 
results.fc <- rbind(results, new.dates) 

这是拆分为多个步骤,比你需要的,但它更容易阅读的方式。希望这可以帮助。

+0

马特,那得到的日期。预测(结果$收入)部分呢?我应该做一些预测< - 预测(结果$收入),然后fc < - rbind(results.fc,forecast)? – analyticsPierce 2010-10-22 01:42:23

+0

我想我明白你的意思了。我可以用data.frame函数末尾的预测(结果$收入)代替收入= NA。但是,我收到一个错误,表示有不同数量的行。 – analyticsPierce 2010-10-22 01:59:36

+0

我得到了与预测相等的行(结果$收入,44)。当我运行这个时,它会挂上forecast()函数返回5个变量;预测Lo 80,Hi 80,Lo 95和Hi 95.我不知道如何选择预测组件。 – analyticsPierce 2010-10-22 03:14:54