BookmarkSubscribeRSS Feed
Sujithpeta
Quartz | Level 8

Hello, 

DATA A.IP_Bene;
SET "/sas/raw4/WD1/ccaei121.sas7bdat";
	ARRAY ICD {15} DX1-DX15;
	DO i = 1 to 15;
		IF ICD {i} in ("45341", "45340", "45342", "45350", "45351", "45352", "45181", "45111", "45119", "41511", "41512", "41513", "41519") THEN DO; 
		OUTPUT; 
		LEAVE; 
		END;
	END;
RUN;

 

Above SAS code creates a dataset whos row have any of these strings ("45341", "45340", "45342", "45350", "45351", "45352", "45181", "45111", "45119", "41511", "41512", "41513", "41519") across 15 columns in the dataset.

How can I modify this code so that I can get count(No.of times the value appeared in the 15 columns) as following:

Description   Count

    45341          X

    45340          Y

    45342          Z

and so on....

 

Thanks

--Sujith

3 REPLIES 3
art297
Opal | Level 21

Do you want the overall counts for the file OR separately for each record?

 

Art, CEO, AnalystFinder.com

 

Sujithpeta
Quartz | Level 8

Overall Counts in the file.

 

Thanks

art297
Opal | Level 21

The following modification of your current code would do what you want:

 

DATA for_count (keep=_icd rename=(_icd=icd));
  SET ccaei121;
  ARRAY ICD {15} DX1-DX15;
  DO i = 1 to 15;
    IF ICD {i} in ("45341", "45340", "45342", "45350", "45351", "45352", "45181", "45111", "45119", "41511", "41512", "41513", "41519") THEN DO; 
      _icd=icd(i);
      OUTPUT; 
    END;
  END;
RUN;

proc freq data=for_count;
  tables icd;
run;

Art, CEO, AnalystFinder.com

 

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

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
  • 2054 views
  • 0 likes
  • 2 in conversation