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
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.
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.
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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.