BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
kashili
Calcite | Level 5

I have 2 datasets with structure <Id Year month result>. Say data is

SET1:

0  2001   01  12

1  2001   02  10

2  2001   03  13

AND set2

0  2001   01  14

1  2001   02  15

2  2001   03  16

i want only the "result" of set 2 to be substracted from the corresponding rows of set1 (where id year and month match)..result set would be

0  2001   01  -2

1  2001   02  -5

2  2001   03  -3

I use proccompare, but it diffs both the datasets across all the corresponding elements.  How can I diff only the corresponding "results" and preserve "id year month"..thank you

1 ACCEPTED SOLUTION

Accepted Solutions
Linlin
Lapis Lazuli | Level 10

try:

data want;

merge set1(in=a rename =(result=r1)) set2(in=b rename=(result=r2));

by id year month;

if a and b;

r_diff=r1-r2;

run;

View solution in original post

2 REPLIES 2
Linlin
Lapis Lazuli | Level 10

try:

data want;

merge set1(in=a rename =(result=r1)) set2(in=b rename=(result=r2));

by id year month;

if a and b;

r_diff=r1-r2;

run;

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 820 views
  • 1 like
  • 2 in conversation