DATA Step, Macro, Functions and more

Characters count across many columns in the dataset

Reply
Contributor
Posts: 43

Characters count across many columns in the dataset

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

PROC Star
Posts: 7,356

Re: Characters count across many columns in the dataset

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

 

Art, CEO, AnalystFinder.com

 

Contributor
Posts: 43

Re: Characters count across many columns in the dataset

Overall Counts in the file.

 

Thanks

PROC Star
Posts: 7,356

Re: Characters count across many columns in the dataset

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

 

Ask a Question
Discussion stats
  • 3 replies
  • 116 views
  • 0 likes
  • 2 in conversation