/ Published in: SAS
                    
                                        
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
/*The Data we have is this:*/
DATA Temp;
Input Var200203 Var200204 Var200205 VarLookUp $11.;
DataLines;
1 2 3 Var200203
5 6 7 Var200204
3 6 9 Var200205
;
RUN;
/*We want to end up with VarOut which is the value of the lookup column for that observation:
Var200203 Var200204 Var200205 VarLookUp VarOut
1 2 3 Var200203 1
5 6 7 Var200204 6
3 6 9 Var200205 9
*/
/*The solution:
While the vname function is comparatively expensive, it’s helpful here.
One additional data line added to test with unexpected data.*/
DATA Temp;
Input Var200203 Var200204 Var200205 VarLookUp $11.;
DataLines;
1 2 3 Var200203
5 6 7 Var200204
3 6 9 Var200205
3 6 9 Var200206
;
data done ( drop = _: ); set temp; array vars var2: ; do _i = 1 to dim(vars) until (vname(vars(_i)) = varlookup) ; end; if _i le dim(vars) then varout = vars(_i); run;
proc print data=done;
run;
/*
The SAS System 09:21 Thursday, July 31, 2003 1
Obs Var200203 Var200204 Var200205 VarLookUp varout
1 1 2 3 Var200203 1
2 5 6 7 Var200204 6
3 3 6 9 Var200205 9
4 3 6 9 Var200206 .
*/
Comments
 Subscribe to comments
                    Subscribe to comments
                
                