DATA Step, Macro, Functions and more

Counter in SAS, please help. Thanks

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 96
Accepted Solution

Counter in SAS, please help. Thanks

Hi All,

This should be very quick for you, I would like to add a new column that count weeks like below...

I know how to count number of rows, but here, it's different, I want to say for example week51 and year 2009 is Week1 like below. Your help will be mucg appreciated.

Thanks

  CUST_10000048_V2; 

  SET CUST_10000048;

  RETAIN COUNTER;

  BY SOLD_TO_ORG_ID DELIVERY_YEAR DELIVERY_WEEK;

  IF FIRST.SOLD_TO_ORG_ID AND FIRST.DELIVERY_YEAR AND FIRST.DELIVERY_WEEK THEN COUNTER=0;

  COUNTER=COUNTER+1;

  ;

SOLD_TO_ORG_IDDELIVERY_DATEWEEK_YEARDELIVERY_YEARDELIVERY_WEEKNEW_COLUMN
1000004821/12/200951 - 20092009511
1000004823/12/200951 - 20092009511
1000004828/12/200952 - 20092009522
1000004830/12/200952 - 20092009522
1000004804/01/20101 - 2010201013
1000004808/01/20101 - 2010201013
1000004811/01/20102 - 2010201024

Accepted Solutions
Solution
‎03-14-2013 01:57 PM
Frequent Contributor
Posts: 96

Re: Counter in SAS, please help. Thanks


All Replies
Valued Guide
Posts: 634

Re: Counter in SAS, please help. Thanks

Add this line of code.

if first.delivery_week then new_column+1;

Solution
‎03-14-2013 01:57 PM
Frequent Contributor
Posts: 96

Re: Counter in SAS, please help. Thanks

Many Thanks ArtSmiley Happy

Respected Advisor
Posts: 3,156

Re: Counter in SAS, please help. Thanks

As a variation of ArtC's suggestion:

new_column+first.delivery_week;

Haikuo

Valued Guide
Posts: 634

Re: Counter in SAS, please help. Thanks

yours is cleaner Haikuo - thanks

Respected Advisor
Posts: 4,920

Re: Counter in SAS, please help. Thanks

An alternative would be :

proc rank data=myData out=want;

BY SOLD_TO_ORG_ID DELIVERY_YEAR;

var delivery_week;

ranks new_column;

run;

PG

PG
🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 217 views
  • 0 likes
  • 4 in conversation