Help using Base SAS procedures

different criteria for dups

Reply
Super Contributor
Posts: 399

different criteria for dups

I'm not sure how to title this but here is what I'm looking for..  I have a series of dups but want only the ones that have a USE = Y, BUT if the dups both have USE = N, keep only one (either one).

I tried this but it didn't work :

if ((first.PS = last.PS) and (first.prov NE last.prov)) then first.USE = 'Y';

HAVE:

PS    PROV  USE

H8G    AB      Y

H8G    AB      N

L1T     ON      Y

M1P    ON     Y

R8A    SK      N

R8A    MB     N

for the R8A keep ONLY one of the 2 even if though USE says N.

WANT:

H8G    AB      Y

H8G    AB      N

L1T     ON      Y

M1P    ON     Y

R8A    SK      Y

R8A    MB     N

Super Contributor
Posts: 1,636

Re: different criteria for dups

proc sort data=have out=want nodupkey;

  by ps use;

run;

Super Contributor
Posts: 399

Re: different criteria for dups

Linlin, that singled out the R8A but it did not change it to USE=Y

Super User
Posts: 9,775

Re: different criteria for dups

Can you post some more HAVE WANT?

Why the red part will be changed from N to Y?

Super Contributor
Posts: 399

Re: different criteria for dups

I would like one of the Dupped N's to cange to Y, because the way they were captured in the earlier steps of data manipulation, where even though R8A is in both Prov's, I want one of the them to be counted, I don't want to lose any PS's.

Super Contributor
Posts: 1,636

Re: different criteria for dups

proc sort data=have;

by ps use;

run;

data  single dup;

by ps use;

if first.use and last.use then output single;

    else output dup;

proc sort data= dup  nodupkey;

by ps use;

data dup;

    set dup;

use='Y';

run;

data want;

    set single dup;

run;

Super Contributor
Posts: 399

Re: different criteria for dups

Great, Thank you

Ask a Question
Discussion stats
  • 6 replies
  • 180 views
  • 3 likes
  • 3 in conversation