DATA Step, Macro, Functions and more

How to find the variables that are present in one data set but in others

Reply
Super Contributor
Posts: 272

How to find the variables that are present in one data set but in others

Dear,

 

I have a dataset with more than 200 variables. How to find the variables that present in my dataset but in vendor dataset. I checked using proc contents procedure. It is taking time. Is there a quick way to identify. Please help.

 

Thanks

Super User
Posts: 17,840

Re: How to find the variables that are present in one data set but in others

1. Proc Compare - will print a report. 

2. Use SASHELP.VCOLUMN/Dictionary.Column. These are datasets that contain the variables in each dataset. It's worth learning how to use these well. 

 

Give them a shot and if you need more help post the code you've tried.

Super User
Posts: 5,083

Re: How to find the variables that are present in one data set but in others

Don't run a PROC COMPARE on the data sets themselves.  Run it on the output of PROC CONTENTS.  For example:'

 

proc contents data=a noprint out=a_contents;

run;

proc contents data=b noprint out=b_contents;

run;

 

Then run the PROC COMPARE to compare a_contents vs. b_contents.  Use NAME as the BY or ID variable.

Super User
Super User
Posts: 7,401

Re: How to find the variables that are present in one data set but in others

Hi,

 

Personally I would be worried about the "200 columns", that is never a good way to work and will cause you problems throughout programming with it.

 

proc sql;
  create table VARS_MISSING as
  select  VNAME
  from    (select * from SASHELP.VCOLUMN where LIBNAME="<your library>" and MEMNAME="<your dataset in upcase>")
  except  (select * from SASHELP.VCOLUMN where LIBNAME="<your library>" and MEMNAME="<your other dataset in upcase>");
quit;
  
Ask a Question
Discussion stats
  • 3 replies
  • 503 views
  • 12 likes
  • 4 in conversation