BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
RandyStan
Fluorite | Level 6
Dear All:
My data is as follows

VarA IDA 4 1 6 2 2 3 1 4 10 5 22 6 2 7 1 8 85 9 I want to create a subgroup when VARA = 1 and VarA = 2, name the subgroup as Rank = 0 and then find find the deciles for the remaining values.

 

Thanks

Ramdy

 

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User
proc rank data=have groups=10;
where vara not in (1,2);
var varA;
ranks rank_varA;
run;

View solution in original post

4 REPLIES 4
Reeza
Super User
VARA = 1 and VarA = 2, you mean OR I assume?

proc univariate data=have ;
where vara in (1,2);
var ida;
output out=deciles pctlpre = P_ pctlpts=0 to 100 by 10;
run;

https://stats.idre.ucla.edu/sas/faq/how-do-i-obtain-percentiles-not-automatically-calculated/
run;
PaigeMiller
Diamond | Level 26

I want to create a subgroup when VARA = 1 and VarA = 2, name the subgroup as Rank = 0 and then find find the deciles for the remaining values.

I'm really struggling to decipher this into something I could program. When you talk about "the remaining values", are these the values that are not in RANK=0? Or are they the values of VARA=1 and VARA=2? Why the name RANK=0, this seems to imply something, but I can't figure it out. Is there also a RANK=1?

 

Can you show us the desired output from this small example?

--
Paige Miller
RandyStan
Fluorite | Level 6

Paige -- Here is the intuition.  I have a column with a series of values.  I want to group them into deciles, but not include values of 1 or 2 into the decile grouping, keeping them as a separate group.

 

so if the values of VarA are

 

VARA              Rank_A

1                        -1

3                        1

6                        2

8                        3

9                        4

14                      5

2                        -1

66                      6

VARA = 1 OR VARA =2 always get a rank of say  ( -1 or 0 -- it does not matter) and the ranks are determined on the remaining values.  I hope that I am clearer -- I apologize for any confusion.

  Randy

Reeza
Super User
proc rank data=have groups=10;
where vara not in (1,2);
var varA;
ranks rank_varA;
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 25. 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
  • 4 replies
  • 677 views
  • 0 likes
  • 3 in conversation