[R] Transposing forecasts results from nnetar function and turn them into a data frame

Jim Lemon drjimlemon at gmail.com
Fri Mar 17 21:48:48 CET 2017


Hi Paul,
When manipulating any R object, the first thing to ascertain is what it is:

class(TSmodelForecast)

should give you useful information.

str(TSmodelForecast)

should give you more. Because of the wealth of defined data structures
in R, it is difficult to manipulate them without this information. I
suspect that your output is something like a time series object, and
once that is known, it should not be too hard to display its contents
in the way you want.

Jim


On Sat, Mar 18, 2017 at 7:12 AM, Paul Bernal <paulbernal07 at gmail.com> wrote:
> Dear Jim,
>
> Hope you are doing great. I tried to do what you suggested but R send an
> error message saying that $ operator is invalid for atomic vectors.
>
> The format of the forecasts are as follows: forecasted years are as rows,
> and forecasted months are in columns what I want to do is to have two
> colums, one with the forecasted dates in (MMM-YYYY format) and the second
> column with the actual forecast results.
>
> The output that is giving me hard time is the forecast output from nnetar
> model.
>
> Thanks for your valuable support,
>
> Best of regards,
>
> Paul
>
>
> 2017-03-16 18:23 GMT-05:00 Jim Lemon <drjimlemon at gmail.com>:
>>
>> Hi Paul,
>> It looks like the information that is printed is in:
>>
>> TSModelForecast$mean
>>
>> If str(TSModelForecast$mean) returns something like a list with two
>> components, you can probably use something like this:
>>
>> paste(format(TSModelForecast$mean$Date,"%b-%Y"),
>>  TSModelForecast$mean$Forecast,sep="-",collapse="\n")
>>
>> It also might be in TSModelForecast$fitted
>>
>> Jim
>>
>>
>> On Fri, Mar 17, 2017 at 5:34 AM, Paul Bernal <paulbernal07 at gmail.com>
>> wrote:
>> > Dear friends,
>> >
>> > I am currently using R version 3.3.3 (64-bit) and used the following
>> > code
>> > to generate forecasts:
>> >
>> >> library(forecast)
>> >>
>> >> library(tseries)
>> >
>> >     ‘tseries’ version: 0.10-35
>> >
>> >     ‘tseries’ is a package for time series analysis and computational
>> > finance.
>> >
>> >     See ‘library(help="tseries")’ for details.
>> >
>> >
>> >> DAT<-read.csv("TrainingData.csv")
>> >>
>> >> TSdata<-ts(DAT[,1], start=c(1994,10), frequency=12)
>> >>
>> >> TSmodel<-nnetar(TSdata)
>> >>
>> >> TSmodelForecast<-forecast(TSmodel, h=24)
>> >>
>> >> TSmodelForecast
>> >
>> > The problem is that the output comes in this fashion:
>> >
>> >                 Jan    Feb    Mar    Apr    May    Jun     Jul    Aug
>> > Sep   Oct
>> >  2017        10      20      15      40     9         8         21
>> > 21
>> >     19     18
>> >  2018        34      15       7        6      10      11
>> >
>> > The format I would like to have is the following:
>> >
>> > Date                 Forecast
>> > Jan-2017               10
>> > Feb-2017               20
>> > Mar-2017               15
>> > Apr-2017                40
>> > May-2017               9
>> > Jun-2017                8
>> > Jul-2017                 21
>> > Aug-2017               21
>> > Sep-2017               19
>> > etc                          etc
>> >
>> > Is there a way to make the results look like this?
>> >
>> > Attached is a dataset as a reference.
>> >
>> > Best regards,
>> >
>> > Paul
>> > ______________________________________________
>> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list