May I know the meaning of %str( ) in below %do loop and %let statement?
/* Drop unwanted fields from the tables */ %let l_i=1; PROC SQL NOPRINT; %do %until(%scan(&l_freqDs,&l_i, %str( )) EQ ); %let l_dsName =%scan(&l_freqDs,&l_i, %str( )); %let l_varName= %scan(&l_tables,&l_i, %str( )); ALTER TABLE &l_dsName DROP &l_varName; %let l_i=%eval(&l_i + 1); %end; QUIT;
Since the macro language strips blanks from values, you must use the %STR macro function to feed a blank to the SCAN.
@Kurt_Bremser Won't the SCAN function consider blank as default delimiter without we being explicitly adding %str()?
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.