BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
TobbeArbMed
Calcite | Level 5

I have the following data:

 

lopnr  Syss1995  Syss1996  Syss1997  Syss1998  Syss1999  Syss2000     invar

      1                1                5                6               1                5                1     1996

      2                3                1                6               5                1                6     1999  

      3                1                6                1               5                6                1     1995

and so on...

 

I want a new variable with following values 

 

Syssinvar

             5

             1

             1

and so on...

 

Thus I need to get the value from the right Syss-variables with the same year as in the invar variable

My guessing is that I need to use symputx in some way, but I don't get it right. 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
FredrikE
Rhodochrosite | Level 12

Hi!

VValueX will do it 🙂

 

data have;
 length lopnr syss1995 syss1996 syss1997 invar 8;
 input  lopnr syss1995 syss1996 syss1997 invar;
 datalines;
 1 1 5 6 1997
 2 3 1 6 1995
 3 1 6 1 1996
 ;
run;

data want;
 set have;
 length syssinvar 8;
 syssinvar = vvaluex(cats('syss',put(invar,best.)));
run;

View solution in original post

4 REPLIES 4
FredrikE
Rhodochrosite | Level 12

Hi!

VValueX will do it 🙂

 

data have;
 length lopnr syss1995 syss1996 syss1997 invar 8;
 input  lopnr syss1995 syss1996 syss1997 invar;
 datalines;
 1 1 5 6 1997
 2 3 1 6 1995
 3 1 6 1 1996
 ;
run;

data want;
 set have;
 length syssinvar 8;
 syssinvar = vvaluex(cats('syss',put(invar,best.)));
run;
TobbeArbMed
Calcite | Level 5
Great! Thank you!
Tom
Super User Tom
Super User

Looks like an array problem.

data want ;
  set have ;
  array s syss1995-syss2000 ;
  sysinvar = s(invar - 1995 +1);
run;

 

TobbeArbMed
Calcite | Level 5
Works perfect!
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 5342 views
  • 2 likes
  • 3 in conversation