Last active
August 29, 2015 14:20
-
-
Save shivallan/976c3796921dd1f22588 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * Setting options for macro; | |
| options MCOMPILENOTE = ALL MLOGIC MPRINT MPRINTNEST MLOGICNEST; | |
| * Code for Output CLS; | |
| ods html close; /* close previous */ | |
| ods html; /* open new */ | |
| * My macro for Task #4; | |
| %macro mLookup(mvValue, mvTable, mvLookUpColumn, mvTargetColumn); | |
| %local mvOpen; | |
| %local mvClose; | |
| %local mvCurValue; | |
| %let mvOpen = %sysfunc(open(&mvTable)); | |
| %put mvOpen = &mvOpen; | |
| %syscall set(mvOpen); | |
| %let i=1; | |
| %let j=1; | |
| %do %while (&i <= (%sysfunc(attrn(&mvOpen, nobs))) and &j); | |
| %let mvCurValue = %sysfunc(fetchobs(&mvOpen, &i)); | |
| %put mvLookUpColumn = &&&mvLookUpColumn; | |
| %put mvValue = &mvValue; | |
| %if &&&mvLookUpColumn = &mvValue %then | |
| %do; | |
| %put mvTargetColumn = &&&mvTargetColumn; | |
| %let j = 0; | |
| &&&mvTargetColumn; | |
| %end; | |
| %let i = %eval(&i+1); | |
| %end; | |
| %let mvClose = %sysfunc(close(&mvOpen)); | |
| %put mvClose = &mvClose.; | |
| %mend; | |
| * My macro finished; | |
| * Test Table; | |
| data test1; | |
| var1=1; var2=9; output; | |
| var1=2; var2=12; output; | |
| var1=3; var2=25; output; | |
| var1=4; var2=3; output; | |
| run; | |
| * Test macro; | |
| %macro mtest2(mvVr); | |
| data test3; | |
| askldm=&mvVr; | |
| run; | |
| %mend; | |
| * Macro call; | |
| %mtest2(mvVr=%mLookup(mvValue = 4, mvTable = test1, mvLookUpColumn = var1, mvTargetColumn = var2);); | |
| data _null_; | |
| d=%mLookup(mvValue = 3, mvTable = test1, mvLookUpColumn = var1, mvTargetColumn = var2); | |
| put d=; | |
| run; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment