2010-10-21 4 views
4

J'ai un data.frame qui contient des données historiques par jour pendant plusieurs mois. Je voudrais ajouter une prévision à la fin de ce data.frame.Comment ajouter des dates et des prévisions à data.frame?

Par exemple, je peux exécuter ce qui suit pour créer un exemple simple 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) 

Et d'exécuter cette fonction pour générer la prévision.

forecast(results$revenue) 

Ce que je suis coincé sur comment ajouter une séquence de date pour le reste d'Octobre et comprennent les valeurs correctes par rapport aux prévisions. Je veux générer quelque chose qui ressemble à ceci, en ajoutant 30 jours de prévision aux données historiques.

> 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 

Toute aide est appréciée. Merci.

Répondre

2

C'est presque certainement pas le moyen idéal de le faire, mais il vous y conduirons:

#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) 

C'est divisé en plusieurs plus d'étapes que vous avez besoin, mais il est plus facile à lire de cette façon. J'espère que cela t'aides.

+0

Matt, qui a eu les dates. Qu'en est-il de la partie prévisions (résultats $ revenus)? devrais-je faire quelque chose comme prévision <- prévision (résultats $ revenu) puis fc <- rbind (résultats.fc, prévision)? – analyticsPierce

+0

Je pense que je vois ce que tu veux dire. Je peux substituer la prévision (résultats $ revenu) pour le revenu = NA à la fin de la fonction data.frame. Cependant, j'obtiens une erreur qu'il y a un nombre différent de lignes. – analyticsPierce

+0

J'ai obtenu que les lignes soient égales aux prévisions (résultats $ revenus, 44). Quand je lance ceci, il se bloque sur forecast() retournant 5 variables: forecast, Lo 80, Hi 80, Lo 95 et Hi 95. Je ne suis pas sûr de savoir comment sélectionner uniquement la composante de prévision. – analyticsPierce