<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating a count variable based on number of times a value is repeated in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/698224#M213510</link>
    <description>Thank you for the code, the WANT1 GIVES THE PERFECT DATASET BUT WANT 2 GIVES ME ALL O's in proc_cnt</description>
    <pubDate>Wed, 11 Nov 2020 21:05:57 GMT</pubDate>
    <dc:creator>ihtishamsultan</dc:creator>
    <dc:date>2020-11-11T21:05:57Z</dc:date>
    <item>
      <title>Creating a count variable based on number of times a value is repeated</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688797#M209339</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I have a dataset with variables year, patientid, Proc1 through proc15. PROC1-PROC15 have several character values. I would like to create a count variable&amp;nbsp; which sums the number of times "J1000" or "J1001" or "J1201" or "J2201" appear within proc1-proc15 and would like to group by patientid and if possible by year as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sample data set&lt;/P&gt;&lt;P&gt;Data have;&lt;/P&gt;&lt;P&gt;input patientid year proc1$ proc2$ proc3$ proc4$ proc5$;&lt;/P&gt;&lt;P&gt;1 2000 9999&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2 2005 999&amp;nbsp; 989&amp;nbsp; 921&amp;nbsp; J1000&amp;nbsp;&lt;/P&gt;&lt;P&gt;2 2006 977&amp;nbsp; 989&amp;nbsp; 911&amp;nbsp; J1001 582&lt;/P&gt;&lt;P&gt;3 2005 J1201&amp;nbsp;921&amp;nbsp;910&amp;nbsp;954 987&lt;/P&gt;&lt;P&gt;3&amp;nbsp;2005 J1201&amp;nbsp;911&amp;nbsp;911 984 887&lt;/P&gt;&lt;P&gt;3&amp;nbsp;2006 J1201&amp;nbsp;9151&amp;nbsp;913 884 687&lt;/P&gt;&lt;P&gt;1 2000 J2201&amp;nbsp;921&amp;nbsp;910&amp;nbsp;954 987&lt;/P&gt;&lt;P&gt;1 2000 J2201&amp;nbsp;921&amp;nbsp;910&amp;nbsp;954 987&lt;/P&gt;&lt;P&gt;1 2001 J2201&amp;nbsp;921&amp;nbsp;910&amp;nbsp;954 987&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am hoping to get two tables in the format below&lt;/P&gt;&lt;P&gt;Table1 -Year wise count by patientid&lt;/P&gt;&lt;P&gt;PatientID Year&amp;nbsp; &amp;nbsp; &amp;nbsp;Countbyyear&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2000&amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2001&amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2005&amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2006&amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2005&amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2006&amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 2 Totalcount by patienid&lt;/P&gt;&lt;P&gt;PatientID&amp;nbsp; &amp;nbsp; &amp;nbsp;TotalCount&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help is appreciated.&lt;/P&gt;</description>
      <pubDate>Sun, 04 Oct 2020 21:25:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688797#M209339</guid>
      <dc:creator>ihtishamsultan</dc:creator>
      <dc:date>2020-10-04T21:25:23Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a count variable based on number of times a value is repeated</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688798#M209340</link>
      <description>&lt;P&gt;Transpose to a long dataset layout, and it's a simple SQL count with a WHERE condition.&lt;/P&gt;</description>
      <pubDate>Sun, 04 Oct 2020 21:34:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688798#M209340</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-10-04T21:34:22Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a count variable based on number of times a value is repeated</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688800#M209341</link>
      <description>&lt;P&gt;You can get both of the "want" outputs by using a couple of arrays like:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data have;
	INFILE	DATALINES	MISSOVER;
	input patientid year proc1$ proc2$ proc3$ proc4$ proc5$;

DATALINES;
1 2000 9999  
2 2005 999  989  921  J1000 
2 2006 977  989  911  J1001 582
3 2005 J1201 921 910 954 987
3 2005 J1201 911 911 984 887
3 2006 J1201 9151 913 884 687
1 2000 J2201 921 910 954 987
1 2000 J2201 921 910 954 987
1 2001 J2201 921 910 954 987
;
RUN;

PROC	SORT	Data=HAVE;
	BY	PatientID	Year;
RUN;

data	Want1(KEEP=PatientID Year Proc_Cnt)	want2(KEEP=PatientID Proc_Cnt);
	ARRAY	Target_Procs	[4]	$5	_TEMPORARY_	("J1000" "J1001" "J1201" "J2201");
	SET	Have;
		by	PatientID	Year;
	ARRAY	Procs			[*]	$5	Proc1 - Proc5;

	DO	_i	=	1	TO	DIM(Procs);
		IF	Procs[_i]	IN	Target_Procs	THEN
		Proc_Cnt		+	1;
		Ttl_Proc_Cnt	+	1;
	END;

	IF	LAST.Year		THEN
		DO;
			OUTPUT	Want1;
			Proc_Cnt	=	0;
		END;

	IF	LAST.PatientID	THEN
		DO;
			OUTPUT	Want2;
			Ttl_Proc_Cnt	=	0;
			DELETE;
		END;
	ELSE
		DO;
			DELETE;
		END;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Which would give you the following two outputs:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Want1&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jimbarbour_0-1601848481537.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50155iB3CC03CA42DD1950/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jimbarbour_0-1601848481537.png" alt="jimbarbour_0-1601848481537.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Want2&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jimbarbour_0-1601847930029.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50154i9A120F2CAA88B083/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jimbarbour_0-1601847930029.png" alt="jimbarbour_0-1601847930029.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim&lt;/P&gt;</description>
      <pubDate>Sun, 04 Oct 2020 21:55:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688800#M209341</guid>
      <dc:creator>jimbarbour</dc:creator>
      <dc:date>2020-10-04T21:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a count variable based on number of times a value is repeated</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688803#M209342</link>
      <description>&lt;P&gt;Create a view that performs an array based transposition.&amp;nbsp; Feed the view to Proc SUMMARY.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;Data have;
infile cards missover;
input patientid year (proc1-proc15) ($);
datalines;
1 2000 9999  
2 2005 999  989  921  J1000 
2 2006 977  989  911  J1001 582
3 2005 J1201 921 910 954 987
3 2005 J1201 911 911 984 887
3 2006 J1201 9151 913 884 687
1 2000 J2201 921 910 954 987
1 2000 J2201 921 910 954 987
1 2001 J2201 921 910 954 987
;

data eachJ / view=eachJ;
  set have;
  array procs proc1-proc15;
  do _n_ = 1 to dim(procs);
    if procs(_n_) in ('J1000','J1001','J1201','J2201') then do;
      output;
    end;
  end;
  keep patientid year;
run;

proc summary data=eachJ;
  class patientid year;
  output out=freqJ;
run;&lt;/PRE&gt;
&lt;P&gt;Output&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RichardADeVenezia_0-1601852986949.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/50156iD599F9C2759D2823/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RichardADeVenezia_0-1601852986949.png" alt="RichardADeVenezia_0-1601852986949.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Oct 2020 23:10:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/688803#M209342</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-10-04T23:10:43Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a count variable based on number of times a value is repeated</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/698224#M213510</link>
      <description>Thank you for the code, the WANT1 GIVES THE PERFECT DATASET BUT WANT 2 GIVES ME ALL O's in proc_cnt</description>
      <pubDate>Wed, 11 Nov 2020 21:05:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-count-variable-based-on-number-of-times-a-value-is/m-p/698224#M213510</guid>
      <dc:creator>ihtishamsultan</dc:creator>
      <dc:date>2020-11-11T21:05:57Z</dc:date>
    </item>
  </channel>
</rss>

