Forecasting using SAS Forecast Server, SAS/ETS, and more

From daily to monthly

Reply
New Contributor
Posts: 4

From daily to monthly

Hello! Could you help me with the following?

 

I have time series data with 255 variables.

I have to convert all 255 companies' rate of return daily data  to monthly data from 2004 to 2016. I have done it with one variable using proc expand

proc expand data=work.risk

from=day to=month

out=avmonthly;

id Date;

Convert Rf/

observed =average;

run;

 

But how can I use this to matrix data with 255 variables. The data looks like this. There are only 3 companies shown. I have to use the program to 255 companies.

DateSamsungElecKEPCOHyundaiMtr
2004-06-171.381.094.50
2004-06-18-1.47-1.08-2.63
2004-06-19-1.47-1.08-2.63
2004-06-20-1.47-1.08-2.63
2004-06-212.412.450.49

 

Thank you!

Super User
Posts: 19,832

Re: From daily to monthly

If you transpose your data so that its long instead of wide you can add a BY statement to your PROC EXPAND. 

You can do this via PROC TRANSPOSE. 

 

This will probably be useful later on as well. 

New Contributor
Posts: 4

Re: From daily to monthly

Thank you!
SAS Employee
Posts: 416

Re: From daily to monthly

Hello -

You may want to consider using PROC TIMESERIES instead.

For example:

proc timeseries data=work.risk out=work.want;

id date interval=month accumulate=mean;

var _numeric_;

run;

Thanks,
Udo

 

 

 

New Contributor
Posts: 4

Re: From daily to monthly

Thank you!
New Contributor
Posts: 4

Re: From daily to monthly

Thank you for your responses. I tried the other way and it worked:

 

proc expand data=work.risk

from=day to=month

out=avmonthly;

id Date;

Convert SamsungElec--Hyundai Mtr/

observed =average;/

run;

 

Super User
Posts: 19,832

Re: From daily to monthly

I didn't know you could list variables like that. Cool!

Ask a Question
Discussion stats
  • 6 replies
  • 389 views
  • 1 like
  • 3 in conversation