Name EmpID
---- -----
Jill 1864
Jack 2121
Joan 4698
John 5463
Given the SAS data set WORK.EMP_DEPT:
EmpID Department
----- ----------
2121 Accounting
3567 Finance
4698 Marketing
5463 Accounting
The following program is submitted:
data WORK.ALL;
merge WORK.EMP_NAME(in=Emp_N)
WORK.EMP_DEPT(in=Emp_D);
by Empid;
if (Emp_N and not Emp_D) or (Emp_D and not Emp_N);
run
can somebody plz how i m getting 2 observations in work.all data set , how this if condition is selecting the data .
The if (Emp_N and not Emp_D) gets the rows in the EMP_NAME data set that are not in the EMP_DEPT data set. There's one: Jill.
The if (Emp_D and not Emp_N) gets the rows in the EMP_DEPT data set that are not in the EMP_NAME data set. There's one: The empID 3567 in Finance.
The OR means that you want the rows that are in one data set but not the other, so you have 2 observations in the ALL data set.
@SuzanneDorinski already told you what happens.
I just want to add some food for thought: a simpler form of the condition would be
if Emp_N ne Emp_D;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.