BookmarkSubscribeRSS Feed
edu
Calcite | Level 5 edu
Calcite | Level 5

Hi, I am new in SAS and trying to do a basic count varible but after it count the first observation the count variable remains the same.

 

Here the code:

 

DATA WORK.A;

SET B;

 

IF (X NE . OR X NE 0)

THEN

DO;

 COUNT + 1;

END;

 

;RUN;

 

 

Thanks for the help.

 

 

3 REPLIES 3
art297
Opal | Level 21

If you want to increment count when x doesn't equal either missing or 0, then you're boolean logic is wrong. Try:

DATA WORK.A;
SET B;
 
IF (X NE . and X NE 0)
THEN
DO;
 COUNT + 1;
END;
 
RUN;

 

HTH,

Art, CEO, AnalystFinder.com

 

RW9
Diamond | Level 26 RW9
Diamond | Level 26

Tip 1, make your code nice and readble, this is more important than what it actually does in most cases:

data work.a; 
  set b;
  if _n_=1 then count=0;
  count=count + ifn(x not in (.,0),1,0);
run;
  

Note the consistent casing, and the indentations, and also the use of the code window (either {i} above your post or the SAS one).  I would also avoid naming datasets a and b.

 

Tip 2, post test data in the form of a datastep:

https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-dat...

Remember we cannot see your computer, we don't know what your data looks like.

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore Now →
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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 3 replies
  • 1610 views
  • 3 likes
  • 4 in conversation