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,492

Re: Characters count across many columns in the dataset

Posted in reply to Sujithpeta

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,492

Re: Characters count across many columns in the dataset

Posted in reply to Sujithpeta

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