How do you add a prefix to some or all variables in a
dataset using a SAS macro?
Answer Posted / sastechies
Often we need to add a prefix to some or all variables in a
dataset before we might have to merge datasets that have
similar column attributes...This macro would allow you to
do that....
Try it for yourself....
/**
SAS Macro to add a prefix to some or all variables in a
data set...
to be used like this...
%prefixvars(inpdsn,prefix,outdsn,excludevars=);
inpdsn - input dataset name libname.dsnname
prefix - prefix that you want to assign
outdsn - output dataset name libname.dsnname
excludevars - vars that you do not want to rename with the
prefix
**/
%macro prefixvars(inpdsn,prefix,outdsn,excludevars=);
/* split the excludevars into individual macro var names
for later use*/
%let num=1;
%let excludevar=%scan(%upcase(&excludevars),&num,' ');
%let excludevar&num=&excludevar;
%do %while(&excludevar ne );
%let num=%eval(&num + 1);
%let excludevar=%scan(&excludevars,&num,' ');
%let excludevar&num=&excludevar;
%end;
%let numkeyvars=%eval(&num - 1); /* this is number of
variables given in the exclude vars */
%let dsid=%sysfunc(open(&inpdsn)); /* open the dataset
and get the handle
*/
%let numvars=%sysfunc(attrn(&dsid,nvars)); /* get the
number of variables
*/
data
&outdsn;
set &inpdsn(rename=(
/*rename all the variables that are not in the
excludevars=
*/
%do i = 1 %to &numvars;
%let flag=N;
%let var&i=%sysfunc(varname(&dsid,&i));
%do j=1 %to &numkeyvars;
%if %upcase(&&var&i) eq &&excludevar&j %then %
let flag=Y;
%end;
%if &flag eq N %then %do;
&&var&i=&prefix&&var&i %end;
%
end;));
%let rc=%sysfunc(close
(&dsid));
run;
%mend
prefixvars;
/*Call the macro
now*/
%prefixvars
(sashelp.buy,fr_,work.out,excludevars=date)
| Is This Answer Correct ? | 3 Yes | 1 No |
Post New Answer View All Answers
i want for interview question & answer plz it need immediate send t my mail raviprakashmot@gmal.cm
What is SAS?
How would you identify a macro variable?
How can I remove header from output data set?
What is the difference between where and if statement?
Have you used macros? For what purpose you have used? : sas-macro
What are the different types of sas functions?
What is the good sas programming practices for processing large data sets?
How would you include common or reuse to be processed along with your statements?
Tell me more about the parameters in macro? : sas-macro
Can you suggest us materials for sdtm mapping?
what is hierarchy flattening? : Sas-di
what is broad cast agent? : Sas-bi
what are the softwares and applications that are used most frequently used by sas bi applications developers? : Sas-bi
what can you learn from the sas log when debugging? : Sas programming