Hello,
I'm a relatively new SAS user. I'm trying to write a data step for the following condition:
I have 2 data sets. One contains old items. The other new items. I need to create a file that show the items on the new file that are not on the old file.
What is the best way to go about this?
Usually SQL.
But a data step merge works as well, assuming you have some matching_key that is the product identifier then something like the following will work.
The key is the IN Data Set Option.
SAS(R) 9.2 Language Reference: Dictionary, Fourth Edition
data new_not_in_old;
merge new (in=newFile)
old (in=oldFile);
by matching_key;
if newFile and not oldFile;
run;
Thank you so much! This answer really helped me!
Depending on sort order of the two. It helps if both datasets are sorted in the same order. A lot.
You should define items. Is it records or variables, or both?
Proc Compare Base=OldData Compare=NewData listcompobs ;run;
will give a list of RECORD numbers in the NewData that don't exist in the Olddataset.
Proc Compare Base=OldData Compare=NewData listcompvar ;run;
List variables in the NewData not in OldData
Proc Compare Base=OldData Compare=NewData listcomp ;run;
Does what appears in both.
Thank you so much! This answser really helped me!
proc sql;
select item from new
except
select item from old ;
quit;
Thank you so much! This answer really helped me!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.