<?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 WARNING: Partial value initialization of the array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39430#M7985</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I may have asked this before I've been thinking about it for a long time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose I want to collect user input in the form of an array initialization.&amp;nbsp; I want to use SAS to parse or expand the initialization e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;P&gt;152 %let parm = (4*40 3*(3*7 8 9 10));&lt;/P&gt;&lt;P&gt;153 data _null_;&lt;/P&gt;&lt;P&gt;154 array parm[30];&lt;/P&gt;&lt;P&gt;155 retain parm &amp;amp;parm;&lt;/P&gt;&lt;P&gt;WARNING: Partial value initialization of the array parm.&lt;/P&gt;&lt;P&gt;156 put (parm&lt;LI&gt;) (/=);&lt;/LI&gt;&lt;/P&gt;&lt;P&gt;157 run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parm1=40&lt;/P&gt;&lt;P&gt;parm2=40&lt;/P&gt;&lt;P&gt;parm3=40&lt;/P&gt;&lt;P&gt;parm4=40&lt;/P&gt;&lt;P&gt;parm5=7&lt;/P&gt;&lt;P&gt;parm6=7&lt;/P&gt;&lt;P&gt;parm7=7&lt;/P&gt;&lt;P&gt;parm8=8&lt;/P&gt;&lt;P&gt;parm9=9&lt;/P&gt;&lt;P&gt;parm10=10&lt;/P&gt;&lt;P&gt;parm11=7&lt;/P&gt;&lt;P&gt;parm12=7&lt;/P&gt;&lt;P&gt;parm13=7&lt;/P&gt;&lt;P&gt;parm14=8&lt;/P&gt;&lt;P&gt;parm15=9&lt;/P&gt;&lt;P&gt;parm16=10&lt;/P&gt;&lt;P&gt;parm17=7&lt;/P&gt;&lt;P&gt;parm18=7&lt;/P&gt;&lt;P&gt;parm19=7&lt;/P&gt;&lt;P&gt;parm20=8&lt;/P&gt;&lt;P&gt;parm21=9&lt;/P&gt;&lt;P&gt;parm22=10&lt;/P&gt;&lt;P&gt;parm23=.&lt;/P&gt;&lt;P&gt;parm24=.&lt;/P&gt;&lt;P&gt;parm25=.&lt;/P&gt;&lt;P&gt;parm26=.&lt;/P&gt;&lt;P&gt;parm27=.&lt;/P&gt;&lt;P&gt;parm28=.&lt;/P&gt;&lt;P&gt;parm29=.&lt;/P&gt;&lt;P&gt;parm30=.&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;As you can see SAS knows just what to do and give me exactly what I want.&amp;nbsp; I just don't want the warning.&amp;nbsp; I even works for character strings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;P&gt;204 %let parm = (4*'hello kitty' 3*(3*('hello yourself')));&lt;/P&gt;&lt;P&gt;205 data _null_;&lt;/P&gt;&lt;P&gt;206 array parm[30] $32;&lt;/P&gt;&lt;P&gt;207 retain parm &amp;amp;parm;&lt;/P&gt;&lt;P&gt;WARNING: Partial value initialization of the array parm.&lt;/P&gt;&lt;P&gt;208 put (parm&lt;LI&gt;) (/=);&lt;/LI&gt;&lt;/P&gt;&lt;P&gt;209 run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parm1=hello kitty&lt;/P&gt;&lt;P&gt;parm2=hello kitty&lt;/P&gt;&lt;P&gt;parm3=hello kitty&lt;/P&gt;&lt;P&gt;parm4=hello kitty&lt;/P&gt;&lt;P&gt;parm5=hello yourself&lt;/P&gt;&lt;P&gt;parm6=hello yourself&lt;/P&gt;&lt;P&gt;parm7=hello yourself&lt;/P&gt;&lt;P&gt;parm8=hello yourself&lt;/P&gt;&lt;P&gt;parm9=hello yourself&lt;/P&gt;&lt;P&gt;parm10=hello yourself&lt;/P&gt;&lt;P&gt;parm11=hello yourself&lt;/P&gt;&lt;P&gt;parm12=hello yourself&lt;/P&gt;&lt;P&gt;parm13=hello yourself&lt;/P&gt;&lt;P&gt;parm14=&lt;/P&gt;&lt;P&gt;parm15=&lt;/P&gt;&lt;P&gt;parm16=&lt;/P&gt;&lt;P&gt;parm17=&lt;/P&gt;&lt;P&gt;parm18=&lt;/P&gt;&lt;P&gt;parm19=&lt;/P&gt;&lt;P&gt;parm20=&lt;/P&gt;&lt;P&gt;parm21=&lt;/P&gt;&lt;P&gt;parm22=&lt;/P&gt;&lt;P&gt;parm23=&lt;/P&gt;&lt;P&gt;parm24=&lt;/P&gt;&lt;P&gt;parm25=&lt;/P&gt;&lt;P&gt;parm26=&lt;/P&gt;&lt;P&gt;parm27=&lt;/P&gt;&lt;P&gt;parm28=&lt;/P&gt;&lt;P&gt;parm29=&lt;/P&gt;&lt;P&gt;parm30=&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only way I can see to get rid of the warning it to know what the number of elements the "initialization list" is going to produce.&amp;nbsp; But I ain't smart enough for that and why should I need to cause SAS knows already.&amp;nbsp; I just don't want to be warned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps another feature in SAS accepts the same "initialization list" syntax that doesn't produce the WARNING.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 01 Nov 2011 16:36:17 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2011-11-01T16:36:17Z</dc:date>
    <item>
      <title>WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39430#M7985</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I may have asked this before I've been thinking about it for a long time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose I want to collect user input in the form of an array initialization.&amp;nbsp; I want to use SAS to parse or expand the initialization e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;P&gt;152 %let parm = (4*40 3*(3*7 8 9 10));&lt;/P&gt;&lt;P&gt;153 data _null_;&lt;/P&gt;&lt;P&gt;154 array parm[30];&lt;/P&gt;&lt;P&gt;155 retain parm &amp;amp;parm;&lt;/P&gt;&lt;P&gt;WARNING: Partial value initialization of the array parm.&lt;/P&gt;&lt;P&gt;156 put (parm&lt;LI&gt;) (/=);&lt;/LI&gt;&lt;/P&gt;&lt;P&gt;157 run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parm1=40&lt;/P&gt;&lt;P&gt;parm2=40&lt;/P&gt;&lt;P&gt;parm3=40&lt;/P&gt;&lt;P&gt;parm4=40&lt;/P&gt;&lt;P&gt;parm5=7&lt;/P&gt;&lt;P&gt;parm6=7&lt;/P&gt;&lt;P&gt;parm7=7&lt;/P&gt;&lt;P&gt;parm8=8&lt;/P&gt;&lt;P&gt;parm9=9&lt;/P&gt;&lt;P&gt;parm10=10&lt;/P&gt;&lt;P&gt;parm11=7&lt;/P&gt;&lt;P&gt;parm12=7&lt;/P&gt;&lt;P&gt;parm13=7&lt;/P&gt;&lt;P&gt;parm14=8&lt;/P&gt;&lt;P&gt;parm15=9&lt;/P&gt;&lt;P&gt;parm16=10&lt;/P&gt;&lt;P&gt;parm17=7&lt;/P&gt;&lt;P&gt;parm18=7&lt;/P&gt;&lt;P&gt;parm19=7&lt;/P&gt;&lt;P&gt;parm20=8&lt;/P&gt;&lt;P&gt;parm21=9&lt;/P&gt;&lt;P&gt;parm22=10&lt;/P&gt;&lt;P&gt;parm23=.&lt;/P&gt;&lt;P&gt;parm24=.&lt;/P&gt;&lt;P&gt;parm25=.&lt;/P&gt;&lt;P&gt;parm26=.&lt;/P&gt;&lt;P&gt;parm27=.&lt;/P&gt;&lt;P&gt;parm28=.&lt;/P&gt;&lt;P&gt;parm29=.&lt;/P&gt;&lt;P&gt;parm30=.&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;As you can see SAS knows just what to do and give me exactly what I want.&amp;nbsp; I just don't want the warning.&amp;nbsp; I even works for character strings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;SPAN style="font-size: 8pt;"&gt;&lt;P&gt;204 %let parm = (4*'hello kitty' 3*(3*('hello yourself')));&lt;/P&gt;&lt;P&gt;205 data _null_;&lt;/P&gt;&lt;P&gt;206 array parm[30] $32;&lt;/P&gt;&lt;P&gt;207 retain parm &amp;amp;parm;&lt;/P&gt;&lt;P&gt;WARNING: Partial value initialization of the array parm.&lt;/P&gt;&lt;P&gt;208 put (parm&lt;LI&gt;) (/=);&lt;/LI&gt;&lt;/P&gt;&lt;P&gt;209 run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parm1=hello kitty&lt;/P&gt;&lt;P&gt;parm2=hello kitty&lt;/P&gt;&lt;P&gt;parm3=hello kitty&lt;/P&gt;&lt;P&gt;parm4=hello kitty&lt;/P&gt;&lt;P&gt;parm5=hello yourself&lt;/P&gt;&lt;P&gt;parm6=hello yourself&lt;/P&gt;&lt;P&gt;parm7=hello yourself&lt;/P&gt;&lt;P&gt;parm8=hello yourself&lt;/P&gt;&lt;P&gt;parm9=hello yourself&lt;/P&gt;&lt;P&gt;parm10=hello yourself&lt;/P&gt;&lt;P&gt;parm11=hello yourself&lt;/P&gt;&lt;P&gt;parm12=hello yourself&lt;/P&gt;&lt;P&gt;parm13=hello yourself&lt;/P&gt;&lt;P&gt;parm14=&lt;/P&gt;&lt;P&gt;parm15=&lt;/P&gt;&lt;P&gt;parm16=&lt;/P&gt;&lt;P&gt;parm17=&lt;/P&gt;&lt;P&gt;parm18=&lt;/P&gt;&lt;P&gt;parm19=&lt;/P&gt;&lt;P&gt;parm20=&lt;/P&gt;&lt;P&gt;parm21=&lt;/P&gt;&lt;P&gt;parm22=&lt;/P&gt;&lt;P&gt;parm23=&lt;/P&gt;&lt;P&gt;parm24=&lt;/P&gt;&lt;P&gt;parm25=&lt;/P&gt;&lt;P&gt;parm26=&lt;/P&gt;&lt;P&gt;parm27=&lt;/P&gt;&lt;P&gt;parm28=&lt;/P&gt;&lt;P&gt;parm29=&lt;/P&gt;&lt;P&gt;parm30=&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only way I can see to get rid of the warning it to know what the number of elements the "initialization list" is going to produce.&amp;nbsp; But I ain't smart enough for that and why should I need to cause SAS knows already.&amp;nbsp; I just don't want to be warned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps another feature in SAS accepts the same "initialization list" syntax that doesn't produce the WARNING.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 16:36:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39430#M7985</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2011-11-01T16:36:17Z</dc:date>
    </item>
    <item>
      <title>WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39431#M7986</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Perhaps a recursive macro to parse the initialization string and count the number of entries?&amp;nbsp; Might not be too hard for numeric values.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 17:29:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39431#M7986</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-01T17:29:51Z</dc:date>
    </item>
    <item>
      <title>WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39432#M7987</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;An interesting challange perhaps, but I don't want to do ANYTHING that SAS already knows how to do.&amp;nbsp; SAS makes programming easier right? :smileygrin:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 17:46:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39432#M7987</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2011-11-01T17:46:32Z</dc:date>
    </item>
    <item>
      <title>WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39433#M7988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Too bad data step does not have a dynamic array feature like proc fcmp (but even there is only for numeric array anyway).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 19:17:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39433#M7988</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-11-01T19:17:53Z</dc:date>
    </item>
    <item>
      <title>WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39434#M7989</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are there other statements or procedures that allow a similar syntax for specifying values?&amp;nbsp;&amp;nbsp; That could be used to help determine the number of values specified. Value labels for an AXIS statement perhaps? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Someone with REGEX skills might be able to convert the string to a series of 1's and + signs so that %EVAL() could count the number of terms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let parm= (4*40 3*(3*7 8 9 10));&lt;/P&gt;&lt;P&gt;%let parm2=(4*1+3*(3*1+1+1+1));&lt;/P&gt;&lt;P&gt;%let nparm=%eval(&amp;amp;parm2);&lt;/P&gt;&lt;P&gt;%put nparm=&amp;amp;nparm;&lt;/P&gt;&lt;P&gt;nparm=22&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 19:22:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39434#M7989</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-01T19:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: WARNING: Partial value initialization of the array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39435#M7990</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's not pretty:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let parm=(40*4 3*(3*7 8 9 10));&lt;/P&gt;&lt;P&gt;%let parm2=%sysfunc(translate(%sysfunc(prxchange(%str(s/\b[0-9]{1,}\b(?!\*)/1/),-1,&amp;amp;parm)),+,%str( )));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(40*1+3*(3*1+1+1+1))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;s/\b[0-9]{1,}\b(?!\*)/1/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is a fairly complex regular expression&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\b[0-9]{1,}\b&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;find a word that is made up of 1 or more digits 0-9 (\b is like \W)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(?!\*)&lt;/P&gt;&lt;P&gt;lookahead, do not match a literal * (use lookahead to not add this character to %1 for replacement later)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Nov 2011 20:32:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/WARNING-Partial-value-initialization-of-the-array/m-p/39435#M7990</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-11-01T20:32:31Z</dc:date>
    </item>
  </channel>
</rss>

