BookmarkSubscribeRSS Feed
bncoxuk
Obsidian | Level 7
I have a data with the format as:

Type PH SEQ
A Y 1
A N 2
A N 3
A N 4
B Y 2
B N 1
B N 3
B N 5

The data can be easily sorted based on Type, PH and SEQ as shown above. Now the question is to pick up:
1) all the records with PH=Y, and
2) the first two records in the sorted data where PH=N.

So the results should be like:
Type PH SEQ
A Y 1
A N 2
A N 3
B Y 2
B N 1
B N 3

How can I do that?
2 REPLIES 2
Ksharp
Super User
Easy.


[pre]


data temp;
input Type $ PH $ SEQ;
cards;
A Y 1
A N 2
A N 3
A N 4
B Y 2
B N 1
B N 3
B N 5
;
run;
data want;
set temp;
by type;
if first.type then count=0;
if ph='Y' then output;
else if ph='N' then count+1;
if count le 2 and ph='N' then output;
run;
[/pre]



Ksharp
bncoxuk
Obsidian | Level 7
Thanks for your help, Ksharp.
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1088 views
  • 0 likes
  • 2 in conversation