<?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: An Array problem in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504877#M135169</link>
    <description>&lt;P&gt;Do you want a data set or a report? "Across the top" sounds like you want a report that people would read. If so this may help:&lt;/P&gt;
&lt;PRE&gt;Proc format library=work;
value score
0            = 1
0   &amp;lt;-&amp;lt; .25  = 2
.25          = 3
2.5 &amp;lt;-&amp;lt; .5   = 4
.5           = 5
.5  &amp;lt;-&amp;lt; .75  = 6
.75          = 7
.75 &amp;lt;-&amp;lt; 1    = 8
1            = 9
;
run;

proc tabulate data=  StgCOCxx.COC_Pmca_complex_Detail_Final;
   class cco;
   class COC_BB_Index ;
   format COC_BB_Index score.;
   table cco,
         COC_BB_Index*n
   ;
run;&lt;/PRE&gt;
&lt;P&gt;The custom format uses &amp;lt; to indicate an open interval.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; &amp;lt;-&amp;lt; &lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;.25&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; = &lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;2&lt;/FONT&gt; then says values between 0 and .25 excluding the ends will display a value of 2.&lt;/P&gt;
&lt;P&gt;Formats are often an easy way to create interval values that involve single variables and can be used to create groups in almost any procedure.&lt;/P&gt;
&lt;P&gt;Add nice labels for CCO and the score variable for nicer table appearance.&lt;/P&gt;
&lt;P&gt;An option to go after the main table statement controls what you might like to have appear for missing counts:&lt;/P&gt;
&lt;PRE&gt;   table cco,
         COC_BB_Index*n
         /misstext='0'
   ;
&lt;/PRE&gt;
&lt;P&gt;would display a zero for missing counts using the MISSTEXT option. You can place any text you would like though long values make for ugly tables. A blank suppresses the default appearance of . for missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that the comma in the table is a dimension separator&lt;/P&gt;</description>
    <pubDate>Tue, 16 Oct 2018 20:39:53 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2018-10-16T20:39:53Z</dc:date>
    <item>
      <title>An Array problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504857#M135160</link>
      <description>&lt;P&gt;I have a dataset with just under 59K obs.&amp;nbsp; This data are Medicaid recipients. There are 18 Medicaid CCOs and one open-card designation (these recipients are most likely 'between' membership in a CCO) . The observations are divided between the CCOs on the basis of geographical location within the state. In earlier code a continuity of care measure was created.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create some simple column charts that will group the CCOs together by continuity of care values. The index values range between 0 and 1.&amp;nbsp; As I envision it I would like the following&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --------------------- Index_score across the top ---------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 9 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CCO by name&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;down the left side&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;the body of the table would contain the counts of the&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scores - that is, how many recipients in each CCO and the Open-card&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fall into index range 1 through 9 &amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is the code so far (using %Let statements to hold whatever index values I want to create a chart)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%Let Lb_0 = 0.000;&lt;BR /&gt;%Let Lb1 = 0.0001;&lt;BR /&gt;%Let Lb2 = 0.2499;&lt;BR /&gt;%Let Lb_25 = 0.250;&lt;BR /&gt;%Let Lb3 = 0.250001;&lt;BR /&gt;%Let Lb4 = 0.4999;&lt;BR /&gt;%Let Lb_50 = 0.500;&lt;BR /&gt;%Let Lb5 = 0.50001;&lt;BR /&gt;%Let Lb6 = 0.7499;&lt;BR /&gt;%Let Lb_75 = 0.7500;&lt;BR /&gt;%Let Lb7 = 0.750001;&lt;BR /&gt;%Let Lb8 = 0.9999;&lt;BR /&gt;%Let Lb_1 = 1.000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data StgCOCxx.CCO_COC_Range (keep = CCO COC_BB_Index indscr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set StgCOCxx.COC_Pmca_complex_Detail_Final;&lt;BR /&gt;by CCO;&lt;BR /&gt;*retain indscr CCO;&lt;BR /&gt;do i = 1 to 9;&lt;BR /&gt;&amp;nbsp; if COC_BB_Index = &amp;amp;Lb_0 then indscr = 1;&lt;BR /&gt;&amp;nbsp; if &amp;amp;Lb1 &amp;lt;= COC_BB_Index &amp;lt;= &amp;amp;Lb2 then indscr=2;&lt;BR /&gt;&amp;nbsp; if COC_BB_Index = &amp;amp;Lb_25 then indscr=3;&lt;BR /&gt;&amp;nbsp; if &amp;amp;Lb3 &amp;lt;= COC_BB_Index &amp;lt;= &amp;amp;Lb4 then indscr=4;&lt;BR /&gt;&amp;nbsp; If COC_BB_Index = &amp;amp;Lb_50 then indscr=5;&lt;BR /&gt;&amp;nbsp; If &amp;amp;Lb5 &amp;lt;= COC_BB_Index &amp;lt;= &amp;amp;Lb6 then indscr=6;&lt;BR /&gt;&amp;nbsp; If COC_BB_Index = &amp;amp;Lb_75 then indscr=7;&lt;BR /&gt;&amp;nbsp; If &amp;amp;Lb7 &amp;lt;= COC_BB_Index &amp;lt;= &amp;amp;Lb8 then indscr=8;&lt;BR /&gt;&amp;nbsp; If COC_BB_Index = &amp;amp;Lb_1 then indscr=9;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My abortive attempt on the next data step where I want to create the array&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data StgCOCxx.COC_array_index;&lt;BR /&gt;&amp;nbsp; Set StgCOCxx.CCO_COC_Range;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; array index[*]_numeric_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .......................&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I started reading papers on Arrays and ended up restarting a couple of times.&amp;nbsp; I thoroughly have myself confused.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your help will be greatly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;wlierman&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 19:51:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504857#M135160</guid>
      <dc:creator>wlierman</dc:creator>
      <dc:date>2018-10-16T19:51:38Z</dc:date>
    </item>
    <item>
      <title>Re: An Array problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504876#M135168</link>
      <description>&lt;P&gt;You might not need arrays, try format to map the values and then later you can use proc tabulate or proc report.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id :$8. val;
datalines;
A 0.001
A 0.001
A 0.002
A 0.003
A 0.004
A 0.001
B 0.002
B 0.004
B 0.005
B 0.001
;
run;

proc format ;
value ind_scr 0.001=1
			  0.002=2
			  0.003=3
			  0.004=4
			  0.005=5
			  other=9;
run;
data want;
set have;
format val ind_scr.;
run;

PROC TABULATE DATA=WORK.WANT;
	CLASS val /	ORDER=UNFORMATTED MISSING;
	CLASS id /	ORDER=UNFORMATTED MISSING;
TABLE id ALL={LABEL="Total"},		/* ROW */
	  val*N="" ALL={LABEL="Total"}*N="";  /* COLUMN*/
RUN;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 195px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/24060i6D1A75943FAFB8F9/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 20:36:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504876#M135168</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2018-10-16T20:36:11Z</dc:date>
    </item>
    <item>
      <title>Re: An Array problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504877#M135169</link>
      <description>&lt;P&gt;Do you want a data set or a report? "Across the top" sounds like you want a report that people would read. If so this may help:&lt;/P&gt;
&lt;PRE&gt;Proc format library=work;
value score
0            = 1
0   &amp;lt;-&amp;lt; .25  = 2
.25          = 3
2.5 &amp;lt;-&amp;lt; .5   = 4
.5           = 5
.5  &amp;lt;-&amp;lt; .75  = 6
.75          = 7
.75 &amp;lt;-&amp;lt; 1    = 8
1            = 9
;
run;

proc tabulate data=  StgCOCxx.COC_Pmca_complex_Detail_Final;
   class cco;
   class COC_BB_Index ;
   format COC_BB_Index score.;
   table cco,
         COC_BB_Index*n
   ;
run;&lt;/PRE&gt;
&lt;P&gt;The custom format uses &amp;lt; to indicate an open interval.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;0&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; &amp;lt;-&amp;lt; &lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;.25&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt; = &lt;/FONT&gt;&lt;FONT color="#008080" face="SAS Monospace" size="2"&gt;2&lt;/FONT&gt; then says values between 0 and .25 excluding the ends will display a value of 2.&lt;/P&gt;
&lt;P&gt;Formats are often an easy way to create interval values that involve single variables and can be used to create groups in almost any procedure.&lt;/P&gt;
&lt;P&gt;Add nice labels for CCO and the score variable for nicer table appearance.&lt;/P&gt;
&lt;P&gt;An option to go after the main table statement controls what you might like to have appear for missing counts:&lt;/P&gt;
&lt;PRE&gt;   table cco,
         COC_BB_Index*n
         /misstext='0'
   ;
&lt;/PRE&gt;
&lt;P&gt;would display a zero for missing counts using the MISSTEXT option. You can place any text you would like though long values make for ugly tables. A blank suppresses the default appearance of . for missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that the comma in the table is a dimension separator&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 20:39:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504877#M135169</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-10-16T20:39:53Z</dc:date>
    </item>
    <item>
      <title>Re: An Array problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504906#M135182</link>
      <description>&lt;P&gt;SuryaKiran,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your post is a great great way to produce what I am looking for.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate your clarity and quick response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the best.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;wlierman&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 21:22:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-Array-problem/m-p/504906#M135182</guid>
      <dc:creator>wlierman</dc:creator>
      <dc:date>2018-10-16T21:22:51Z</dc:date>
    </item>
  </channel>
</rss>

