<?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 Call Missing Question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526478#M143381</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;Hi. I'm trying to figure out the importance/purpose of the Call Missing function being used &lt;BR /&gt;in the code below.  The code itself reshapes the data so that all unique From_Dt values &lt;BR /&gt;appear in a comma delimited list.&lt;BR /&gt;&lt;BR /&gt;Any help would be greatly appreciated.&lt;BR /&gt;&lt;BR /&gt;data&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; BENE   FROM_DT :date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
&lt;SPAN class="token procnames"&gt;format&lt;/SPAN&gt; from_dt date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token keyword"&gt;cards&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;SPAN class="token data string"&gt;12345  23OCT2010
12345  11NOV2015
12345  11NOV2015
12345  15DEC2011
12345  11NOV2015&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; want&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;array&lt;/SPAN&gt; t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;999&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;9&lt;/SPAN&gt; _temporary_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
call &lt;SPAN class="token function"&gt;missing&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;of t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;*&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
do until&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;last&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;bene&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; bene&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
temp&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;from_dt&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; temp &lt;SPAN class="token operator"&gt;not&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;in&lt;/SPAN&gt; t &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;+&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;temp&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
want_list&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;catx&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;', '&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;of t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;*&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;keep&lt;/SPAN&gt; bene want_list&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 11 Jan 2019 20:24:59 GMT</pubDate>
    <dc:creator>buechler66</dc:creator>
    <dc:date>2019-01-11T20:24:59Z</dc:date>
    <item>
      <title>Call Missing Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526478#M143381</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;Hi. I'm trying to figure out the importance/purpose of the Call Missing function being used &lt;BR /&gt;in the code below.  The code itself reshapes the data so that all unique From_Dt values &lt;BR /&gt;appear in a comma delimited list.&lt;BR /&gt;&lt;BR /&gt;Any help would be greatly appreciated.&lt;BR /&gt;&lt;BR /&gt;data&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; BENE   FROM_DT :date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
&lt;SPAN class="token procnames"&gt;format&lt;/SPAN&gt; from_dt date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token keyword"&gt;cards&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;SPAN class="token data string"&gt;12345  23OCT2010
12345  11NOV2015
12345  11NOV2015
12345  15DEC2011
12345  11NOV2015&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; want&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;array&lt;/SPAN&gt; t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;999&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;9&lt;/SPAN&gt; _temporary_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
call &lt;SPAN class="token function"&gt;missing&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;of t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;*&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
do until&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;last&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;bene&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;set&lt;/SPAN&gt; have&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt; bene&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
temp&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;put&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;from_dt&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;date9&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; temp &lt;SPAN class="token operator"&gt;not&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;in&lt;/SPAN&gt; t &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; do&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;+&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;n&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;temp&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
want_list&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;catx&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;', '&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;of t&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;*&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;keep&lt;/SPAN&gt; bene want_list&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jan 2019 20:24:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526478#M143381</guid>
      <dc:creator>buechler66</dc:creator>
      <dc:date>2019-01-11T20:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Call Missing Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526483#M143383</link>
      <description>&lt;P&gt;All the variables mentioned in CALL MISSING are retained.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Elements of a _temporary_ array are automatically retained.&lt;/LI&gt;
&lt;LI&gt;N is automatically retained because of the statement:&amp;nbsp; n+1;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Without CALL MISSING, observations for the second BENE would add to the values found for the previous BENE.&amp;nbsp; CALL MISSING allows each BENE to start with a clean slate and to come up with the dates that belong to that BENE only.&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jan 2019 20:25:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526483#M143383</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-01-11T20:25:33Z</dc:date>
    </item>
    <item>
      <title>Re: Call Missing Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526484#M143384</link>
      <description>&lt;P&gt;Temporary arrays values are retained across iterations of the datastep i.e when sas processes a new record, values are not reset to missing which is the default. Therefore to override the behavior of temp array, call missing assigns missing values for all array elements. HTH&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jan 2019 20:26:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526484#M143384</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-01-11T20:26:58Z</dc:date>
    </item>
    <item>
      <title>Re: Call Missing Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526485#M143385</link>
      <description>Thanks so much. That makes complete sense now. Thanks for taking the time to help. Much appreciated.</description>
      <pubDate>Fri, 11 Jan 2019 20:29:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526485#M143385</guid>
      <dc:creator>buechler66</dc:creator>
      <dc:date>2019-01-11T20:29:55Z</dc:date>
    </item>
    <item>
      <title>Re: Call Missing Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526489#M143387</link>
      <description>&lt;P&gt;The data step concatenates all the distinct dates from each BENE group. The call missing erases the dates from the previous BENE group and resets the value of n to missing. Without that call, you could get some dates from the previous BENE group showing up in the current one.&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jan 2019 20:32:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Call-Missing-Question/m-p/526489#M143387</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-01-11T20:32:45Z</dc:date>
    </item>
  </channel>
</rss>

