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!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.