<?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 Why my second code doesn't work? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108627#M22593</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much!&amp;nbsp; - Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id v1-v5;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 23 34 45 56 66&lt;/P&gt;&lt;P&gt;1 43 45 65 76 88&lt;/P&gt;&lt;P&gt;1 45 55 . . .&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;/* first -- this one produces the output I want */&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _v(*) v:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _l(5)_temporary_&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _l(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _v(_n_)=. then _v(_n_)=_l(_n_);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;P&gt;/* second -- why this one doesn't work? */&lt;/P&gt;&lt;P&gt; data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _v(*) v:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _v(_n_)=. then _v(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 09 May 2012 01:44:28 GMT</pubDate>
    <dc:creator>Linlin</dc:creator>
    <dc:date>2012-05-09T01:44:28Z</dc:date>
    <item>
      <title>Why my second code doesn't work?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108627#M22593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much!&amp;nbsp; - Linlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id v1-v5;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 23 34 45 56 66&lt;/P&gt;&lt;P&gt;1 43 45 65 76 88&lt;/P&gt;&lt;P&gt;1 45 55 . . .&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;/* first -- this one produces the output I want */&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _v(*) v:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _l(5)_temporary_&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _l(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _v(_n_)=. then _v(_n_)=_l(_n_);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;P&gt;/* second -- why this one doesn't work? */&lt;/P&gt;&lt;P&gt; data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array _v(*) v:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do _n_=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _v(_n_)=. then _v(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 01:44:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108627#M22593</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-09T01:44:28Z</dc:date>
    </item>
    <item>
      <title>Re: Why my second code doesn't work?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108628#M22594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ... you have the LAG functions in a conditional statement ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; background-color: #ffffff; font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;if _v(_n_)=. then _v(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so, it's not executed each time you go through the loop as it is in your first job (no conditional LAG) ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;_l(_n_)=(lag(_v(_n_))+lag2(_v(_n_)))/2;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try this ... I learned from postings by Howard Schreier that each portion of IFN is executed regardless of the "truth" of the 1st argument&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;data want;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;set have;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;array _v(*) v:;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;do _n_=1 to 5;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; _v(_n_) = ifn ( _v(_n_) = . , sum( lag(_v(_n_)) ,lag2(_v(_n_)) , 0)/2 , _v(_n_));&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the SUM statement with a 0 gets rid of this message in the LOG ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;NOTE: Missing values were generated as a result of performing an operation on missing values.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 02:10:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108628#M22594</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2012-05-09T02:10:08Z</dc:date>
    </item>
    <item>
      <title>Re: Why my second code doesn't work?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108629#M22595</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;Thank you very much for your explanation! - Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 02:52:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108629#M22595</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-09T02:52:50Z</dc:date>
    </item>
    <item>
      <title>Re: Why my second code doesn't work?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108630#M22596</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ... this is a good paper about conditional lags ... "Conditional Lags Don't Have to be Treacherous" (by Howard Schreier)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.howles.com/saspapers/CC33.pdf" title="http://www.howles.com/saspapers/CC33.pdf"&gt;http://www.howles.com/saspapers/CC33.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 04:24:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108630#M22596</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2012-05-09T04:24:45Z</dc:date>
    </item>
    <item>
      <title>Re: Why my second code doesn't work?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108631#M22597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Mike! I will read it. - Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2012 12:29:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Why-my-second-code-doesn-t-work/m-p/108631#M22597</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-09T12:29:14Z</dc:date>
    </item>
  </channel>
</rss>

