If - Else code

For questions regarding programming in the EViews programming language.

Moderators: EViews Gareth, EViews Jason, EViews Moderator, EViews Matt

pyth
Posts: 1
Joined: Sun Jun 05, 2011 3:15 pm

If - Else code

Postby pyth » Sun Jun 05, 2011 3:25 pm

Eviews 7
Im trying to make a simple if-else program for a manupulation with the data. I want to substract a given number of years from a variable containing the age of a person. The outcome should be the potential experience on the job.
The formula is basically Expirience = Age - given number based on the skill stored in the series pe0400 (coded 1 to 6)

Here is what I have come up with:

Code: Select all

'if pe0400 = 2 then
'      exper=exper - 11
'   else
'      if  pe0400_copy = 3 then
'         exper=exper - 12
'      else
'         if pe0400_copy = 4 then
'            exper=exper-13
'         else
'            if pe0400_copy = 5 then
'               exper=exper-19
''            else
'               if pe0400_copy = 6 then
'                  exper=exper-21
'               else
'               endif
'            endif
'         endif
'      endif
'   endif

This approach doesnt work. Could somebody point out the mistake here, or suggest a better approach? Thanks a lot.

startz
Non-normality and collinearity are NOT problems!
Posts: 3775
Joined: Wed Sep 17, 2008 2:25 pm

Re: If - Else code

Postby startz » Sun Jun 05, 2011 3:46 pm

exper = @recode(pe0400 = 2,exper-11,exper)
exper = @recode(pe0400 = 3,exper-12,exper)
'etc

serkan
Posts: 7
Joined: Mon Dec 24, 2018 8:08 am

Re: If - Else code

Postby serkan » Tue Jan 09, 2024 12:53 am

Dear all,

I have a problem with the code.
I want to change the !bestlag according to !i. But when I run the program, it gives zero for the bestlag.

Is there anyone who can help me?

Code: Select all

!maxlag = 12   'Number of NA (MAX. LAG) in the series
!windowlenght = 48   'window lenght
!noe = @obs(y1)-!maxlag-!windowlenght
!bestlag = 1

for !i=1 to 21 'Dependent variables
   for !k = 1 to !noe 'The number of estimation to be made.

!bestlag = @recode(!i=1, !bestlag=12, !bestlag)
!bestlag = @recode(!i=2, !bestlag=6, !bestlag)
!bestlag = @recode(!i=3, !bestlag=2, !bestlag)
!bestlag = @recode(!i=4, !bestlag=1, !bestlag)
!bestlag = @recode(!i=5, !bestlag=2, !bestlag)
!bestlag = @recode(!i=6, !bestlag=2, !bestlag)
!bestlag = @recode(!i=7, !bestlag=1, !bestlag)
!bestlag = @recode(!i=8, !bestlag=4, !bestlag)
!bestlag = @recode(!i=9, !bestlag=1, !bestlag)
!bestlag = @recode(!i=10, !bestlag=1, !bestlag)
!bestlag = @recode(!i=11, !bestlag=2, !bestlag)
!bestlag = @recode(!i=12, !bestlag=2, !bestlag)
!bestlag = @recode(!i=13, !bestlag=11, !bestlag)
!bestlag = @recode(!i=14, !bestlag=1, !bestlag)
!bestlag = @recode(!i=15, !bestlag=4, !bestlag)
!bestlag = @recode(!i=16, !bestlag=1, !bestlag)
!bestlag = @recode(!i=17, !bestlag=11, !bestlag)
!bestlag = @recode(!i=18, !bestlag=6, !bestlag)
!bestlag = @recode(!i=19, !bestlag=1, !bestlag)
!bestlag = @recode(!i=20, !bestlag=12, !bestlag)
!bestlag = @recode(!i=21, !bestlag=3, !bestlag)

   smpl @first+!maxlag+!k @first+!maxlag+!windowlenght+!k 'widening window

      equation qreg_!i_!k.qreg y!i c y!i(-1) dy!i(-1 to -!bestlag)
      freeze(f_qreg_!i_!k) qreg_!i_!k.qrprocess @coefs c(2)

matrix(!noe, 2) coefs_tvp_!i_01
   coefs_tvp_!i_01(!k,1) = f_qreg_!i_!k(10,3)  'value
   coefs_tvp_!i_01(!k,2) = f_qreg_!i_!k(10,4)  'std dev.

matrix(!noe, 2) coefs_tvp_!i_02
   coefs_tvp_!i_02(!k,1) = f_qreg_!i_!k(11,3)  'value
   coefs_tvp_!i_02(!k,2) = f_qreg_!i_!k(11,4)  'std dev.

matrix(!noe, 2) coefs_tvp_!i_05
   coefs_tvp_!i_05(!k,1) = f_qreg_!i_!k(14,3)  'value
   coefs_tvp_!i_05(!k,2) = f_qreg_!i_!k(14,4)  'std dev.

matrix(!noe, 2) coefs_tvp_!i_08
   coefs_tvp_!i_08(!k,1) = f_qreg_!i_!k(17,3)  'value
   coefs_tvp_!i_08(!k,2) = f_qreg_!i_!k(17,4)  'std dev.

matrix(!noe, 2) coefs_tvp_!i_09
   coefs_tvp_!i_09(!k,1) = f_qreg_!i_!k(18,3)  'value
   coefs_tvp_!i_09(!k,2) = f_qreg_!i_!k(18,4)  'std dev.

     delete f_qreg_!i_!k

   next
next


startz
Non-normality and collinearity are NOT problems!
Posts: 3775
Joined: Wed Sep 17, 2008 2:25 pm

Re: If - Else code

Postby startz » Tue Jan 09, 2024 7:06 am

I think you don't want equal signs inside @recode.

EViews Matt
EViews Developer
Posts: 564
Joined: Thu Apr 25, 2013 7:48 pm

Re: If - Else code

Postby EViews Matt » Tue Jan 09, 2024 10:59 am

Hello,

You may also find it more readable/maintainable to use a vector to store the mapping between the value of !i and that of !bestlag rather than a sequence of @recode statements. For example,

Code: Select all

vector(21) bestlagmap
bestlagmap.fill 12, 6, 2, 1, 2, 2, 1, 4, 1, 1, 2, 2, 11, 1, 4, 1, 11, 6, 1, 12, 3
!bestlag = bestlagmap(!i)

serkan
Posts: 7
Joined: Mon Dec 24, 2018 8:08 am

Re: If - Else code

Postby serkan » Wed Jan 10, 2024 3:19 am

Great.

Many thanks.


EViews Matt wrote:Hello,

You may also find it more readable/maintainable to use a vector to store the mapping between the value of !i and that of !bestlag rather than a sequence of @recode statements. For example,

Code: Select all

vector(21) bestlagmap
bestlagmap.fill 12, 6, 2, 1, 2, 2, 1, 4, 1, 1, 2, 2, 11, 1, 4, 1, 11, 6, 1, 12, 3
!bestlag = bestlagmap(!i)


Return to “Programming”

Who is online

Users browsing this forum: No registered users and 20 guests