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.
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;
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;
Looks like an array problem.
data want ;
set have ;
array s syss1995-syss2000 ;
sysinvar = s(invar - 1995 +1);
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.