BookmarkSubscribeRSS Feed
gazp23
Calcite | Level 5

Hi

 

I'm trying to create a new column called "MONTH_COUNT", whcih will look across a row of data and count how many values are greater than 0.  The full table has around 9,000 rows and 40 rows (monthly totals and varioius flags to categorise customers).

 

My current data set looks like-

Customer MAR-17 APR-17 MAY-17

A                    0           0           100

B                    10           10          10

C                    50         70          75

 

Desired output-

Customer MONTH_COUNT MAR-17 APR-17 MAY-17

A                        1                    0            0           100

B                        3                  10           10          10

C                        3                  50          70           75

 

Thanks in advance!

 

Gaz

1 REPLY 1
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Well, its by using arrays.  The longer version is (and this is not tested as you have not provided test data in the form of a datastep so I nothing to work with nor knowledge of structure):

data want;
  set have;
  array values{3} mar17 apr17 may17;
  do i=1 to 3;
    if values{i} > 0 then month_count=sum(month_count,1);
  end;
run;

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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
  • 1 reply
  • 6140 views
  • 0 likes
  • 2 in conversation