<?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: counter in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28445#M6605</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you need the total number of observations in an additional variable in each observation or do you need the observations position in the dataset?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The variables &lt;SPAN style="font-family: courier new,courier;"&gt;nlobs &lt;/SPAN&gt;and &lt;SPAN style="font-family: courier new,courier;"&gt;nobs &lt;/SPAN&gt;in &lt;SPAN style="font-family: courier new,courier;"&gt;sashelp.vtable&lt;/SPAN&gt; contain the total number of observations in a dataset.&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;P&gt;/* get number of obs */&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select nlobs into :counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from sashelp.vtables&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where lowcase(libname) = 'work' and lowcase(memname) = 'test';&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* update dataset */&lt;/P&gt;&lt;P&gt;data work.test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set work.test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; num_obs = &amp;amp;counter;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code is not tested!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 11 Jul 2011 07:57:15 GMT</pubDate>
    <dc:creator>andreas_lds</dc:creator>
    <dc:date>2011-07-11T07:57:15Z</dc:date>
    <item>
      <title>counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28442#M6602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I wonder how can I add variable' obs', which basically is a counter of observation. Below code is not efficient (it is slow to run), plus in case I don't know the total number of observations, what should I&amp;nbsp; put in place of '9'. ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;Telescopic&lt;/P&gt;&lt;P&gt;-----------------------------------------------------&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input Year Month Total;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;2009 4 16&lt;/P&gt;&lt;P&gt;2009 5 18&lt;/P&gt;&lt;P&gt;2009 6 12&lt;/P&gt;&lt;P&gt;2009 7 15&lt;/P&gt;&lt;P&gt;2009 8 11&lt;/P&gt;&lt;P&gt;2009 9 12&lt;/P&gt;&lt;P&gt;2009 10 7&lt;/P&gt;&lt;P&gt;2009 11 6&lt;/P&gt;&lt;P&gt;2009 12 9&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;DO i=1 to 9;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt; num_obs=i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt; output;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;drop i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data=test;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Jul 2011 16:34:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28442#M6602</guid>
      <dc:creator>telescopic</dc:creator>
      <dc:date>2011-07-10T16:34:51Z</dc:date>
    </item>
    <item>
      <title>counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28443#M6603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SAS will increment the special variable _N_ for every time it loops through the data step.&amp;nbsp; So replace your lines in red with the statement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBS = _n_;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Jul 2011 17:22:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28443#M6603</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-07-10T17:22:30Z</dc:date>
    </item>
    <item>
      <title>counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28444#M6604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tom already answered your question, other than there is no reason to change your variable name (i.e., num_obs=_n_ will also work).&amp;nbsp; So would num_obs+1 in place of the lines in red.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I'm concerned that the code you tried "too so long".&amp;nbsp; It wouldn't give you the expected result as it would loop through each case nine times and result with num_obs always equaling 9, but should have run in a fraction of a second and produced 81 records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Art&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Jul 2011 23:06:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28444#M6604</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-07-10T23:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28445#M6605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you need the total number of observations in an additional variable in each observation or do you need the observations position in the dataset?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The variables &lt;SPAN style="font-family: courier new,courier;"&gt;nlobs &lt;/SPAN&gt;and &lt;SPAN style="font-family: courier new,courier;"&gt;nobs &lt;/SPAN&gt;in &lt;SPAN style="font-family: courier new,courier;"&gt;sashelp.vtable&lt;/SPAN&gt; contain the total number of observations in a dataset.&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;P&gt;/* get number of obs */&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select nlobs into :counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from sashelp.vtables&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where lowcase(libname) = 'work' and lowcase(memname) = 'test';&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* update dataset */&lt;/P&gt;&lt;P&gt;data work.test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set work.test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; num_obs = &amp;amp;counter;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code is not tested!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2011 07:57:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28445#M6605</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2011-07-11T07:57:15Z</dc:date>
    </item>
    <item>
      <title>Re: counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28446#M6606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you all. The Do-loop was wrong. I finally do the following.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------------------------&lt;/P&gt;&lt;P&gt;&lt;A&gt;&lt;/A&gt;&lt;A&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input Year Month Total;&lt;/P&gt;&lt;P&gt;cards;&lt;BR /&gt;2009 4 16&lt;BR /&gt;2009 5 18&lt;BR /&gt;2009 6 12&lt;BR /&gt;2009 7 15&lt;BR /&gt;2009 8 11&lt;BR /&gt;2009 9 12&lt;BR /&gt;2009 10 7&lt;BR /&gt;2009 11 6&lt;BR /&gt;2009 12 9&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test_1;&lt;BR /&gt;set test;&lt;BR /&gt;/*retain counter 0;&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; /*alternative*/&lt;BR /&gt;counter=counter+1;*/&lt;BR /&gt;OBS=_n_;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;proc print data=test_1;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2011 17:20:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28446#M6606</guid>
      <dc:creator>telescopic</dc:creator>
      <dc:date>2011-07-11T17:20:13Z</dc:date>
    </item>
    <item>
      <title>Re: counter</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28447#M6607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Only one data step is needed. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input Year Month Total;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; obs = _n_;&lt;/P&gt;&lt;P&gt;cards;&lt;BR /&gt;2009 4 16&lt;BR /&gt;2009 5 18&lt;BR /&gt;2009 6 12&lt;BR /&gt;2009 7 15&lt;BR /&gt;2009 8 11&lt;BR /&gt;2009 9 12&lt;BR /&gt;2009 10 7&lt;BR /&gt;2009 11 6&lt;BR /&gt;2009 12 9&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2011 20:44:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/counter/m-p/28447#M6607</guid>
      <dc:creator>DLing</dc:creator>
      <dc:date>2011-07-11T20:44:21Z</dc:date>
    </item>
  </channel>
</rss>

