UCLA Academic Technology Services HomeServicesClassesContactJobs
Search

SAS FAQ
How can I put a value from a data file to a macro variable?

We can use the symput function to get information from a data file to a SAS Macro variable.  Consider the example below.  We have a data file test and we have used proc means to save the mean of x to xbar in a new data file named testmean.

data test;
  input x ;
cards;
100
200
300
;
run;

proc means data=test;
  var x;
  output out=testmean mean=xbar;
run;

We would like to get the value of xbar into a macro variable to be used elsewhere.  Below, we use the symput command to put the value of xbar into a macro variable called xbarmac. At the end of the data step we use %put to display this value (to check that it worked) and then in test2 we can use this macro variable to create a mean-centered variable.

data _null_;
  set testmean;
  call symput("xbarmac",xbar);
run;

%put mean of x is &xbarmac;

data test2;
  set test;
  xcent = x - &xbarmac;
run;

proc print data=test2;
run;

Below is the part of the log that shows the value of the macro variable.

404  %put mean of X is &xbarmac;
mean of X is          200

And below we see the output of proc print, and indeed xcent contains x minus the mean of x.

Obs     x     xcent
1     100     -100
2     200        0
3     300      100

How to cite this page

Report an error on this page

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California