<?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: While not last row? User written code in DI Studio in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83099#M772</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would probably be easier if you used the MOD function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if mod(_n_) = 0 then new_row = value2;&lt;/P&gt;&lt;P&gt;else new_row = value1;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Oct 2012 13:40:32 GMT</pubDate>
    <dc:creator>LinusH</dc:creator>
    <dc:date>2012-10-02T13:40:32Z</dc:date>
    <item>
      <title>While not last row? User written code in DI Studio</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83097#M770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a data set with 80 rows. For every set of 4 rows, I want to insert one kind of value into the first three rows, and a different value into the fourth row. I first figured the code might be something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data &amp;amp;_output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set work.testdata;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while not last row;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_ &amp;lt;= 3 then do;&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; new_row = value1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if _n_ = 4 then do;&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; new_row = value2;&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; _n_ = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just realized I'm misusing _n_ though, and need to reconsider it. Perhaps I can use a custom count variable. In any case, my question is, how do I do the "while not last row" part of the code correctly? Actually, the last row should preferably be included.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your attention.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 13:13:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83097#M770</guid>
      <dc:creator>TurnTheBacon</dc:creator>
      <dc:date>2012-10-02T13:13:46Z</dc:date>
    </item>
    <item>
      <title>Re: While not last row? User written code in DI Studio</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83098#M771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not use the MOD function to test if you are on the 4th observation?&lt;/P&gt;&lt;P&gt;That way you can adjust the value of the new variable you are creating.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that normally new variables as referred to as columns instead of rows.&amp;nbsp; If you actually meant to create new observations (aka new rows) then the code will be different, but the logic for finding every fourth observation would be the same.&lt;/P&gt;&lt;P&gt;&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; if 0=mod(_n_,4) then new_variable=value2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else new_variable=value1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 13:37:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83098#M771</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-10-02T13:37:35Z</dc:date>
    </item>
    <item>
      <title>Re: While not last row? User written code in DI Studio</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83099#M772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would probably be easier if you used the MOD function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if mod(_n_) = 0 then new_row = value2;&lt;/P&gt;&lt;P&gt;else new_row = value1;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2012 13:40:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/While-not-last-row-User-written-code-in-DI-Studio/m-p/83099#M772</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2012-10-02T13:40:32Z</dc:date>
    </item>
  </channel>
</rss>

