Thank you for your response. The reason why I am using a macro is because there will be more data steps added inside the macro to modify the case of the variable. For example, keeping acronyms in capital letter etc. Here is an example of my Original data with the variable named X1
Data Original:
input X1 $60;
cards;
SURGERY FOR BLEEDING
DELAYED AND/OR MISSED EXAMINATIONS
REMOVAL OF STITCHES
;
run;
%Macro PCase (Dat=, Var=, LowList=);
Data Cased; set &Dat; X2 = propcase (&Var);
%let VarCnt=%sysfunc(countw(&LowList)); %do i = 1 %to &VarCnt; %let Var_Ind = %scan(&LowList,&i," "); X3 = tranwrd(X2, "&Var_Ind", lowcase("&Var_Ind")); %end; run; %mend PCase;
It works If I define the list as: %let Low = %str(Or),
%PCase (Dat=Original, Var=X1, LowList=&Low);
it which change all the 'Or' to 'or'.
If I define the list as %let Low = %str(Or For And/Or) then nothing works.
... View more