Hello SAS Community,
Does anyone know a way to call a variable based on the column location rather than the column name?
I would like to pass data sets to a macro procedure and run FREQ on the first 2 columns of the data set, however the names of these variables will vary. So my question is if I can identify the variables in the FREQ procedure without knowing the variable names.
PROC FREQ DATA =T1;
TABLE ColVar1 /OUT =T2;
TABLE ColVar2 /OUT =T3;
quit;
Thank you for your help.
Mike
You would be better off with one data set of all the variables in one. ODS OUTPUT ONEWAYFREQS
This?
This almost does what I was hoping perfectly. One last step though is that I would like to put the output from each variable out into its own table. Any ideas?
TABLE ColVar1 /OUT =T2;
TABLE ColVar2 /OUT =T3;
You would be better off with one data set of all the variables in one. ODS OUTPUT ONEWAYFREQS
Thank you so much for your solution. I will try ODS.
NULL , You can do it as simple as :
data _null_; dsid=open('sashelp.class','i'); call symputx('first',varname(dsid,1)); call symputx('second',varname(dsid,2)); run; %put First is: &first | Second is: &second ; proc freq data=sashelp.class; table &first ; table &second ; run;
Xia Keshan
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.