<?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: Determining the number of observations in a SAS data set efficiently in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Determining-the-number-of-observations-in-a-SAS-data-set/m-p/537266#M147723</link>
    <description>&lt;P&gt;One approach would get counts for each combination that exists in your data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc freq data=have;&lt;/P&gt;
&lt;P&gt;tables StudyNum * Proc1 / noprint out=counts (keep=StudyNum Proc1 count);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then transform the data set of counts into a wider form:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc transpose data=counts out=want;&lt;/P&gt;
&lt;P&gt;by StudyNum;&lt;/P&gt;
&lt;P&gt;var count;&lt;/P&gt;
&lt;P&gt;id Proc1;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Of course, this requires that any possible value for PROC1 is actually a valid name for a variable.&amp;nbsp; Also, it gives you missing values instead of zeros for combinations that didn't occur.&amp;nbsp; If you wanted to, you could go through the results later and change missing values to zero:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want_final;&lt;/P&gt;
&lt;P&gt;set want;&lt;/P&gt;
&lt;P&gt;array nums {*} _numeric_;&lt;/P&gt;
&lt;P&gt;do k=1 to dim(nums);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;if nums{k} = . then nums{k} = 0;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
    <pubDate>Thu, 21 Feb 2019 01:58:54 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2019-02-21T01:58:54Z</dc:date>
    <item>
      <title>Determining the number of observations in a SAS data set efficiently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-the-number-of-observations-in-a-SAS-data-set/m-p/537262#M147720</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;I have a dataset that shows the type of procedure, listed under proc1 and the ID (studynum). Each studynum may have several different types of procedure/procedure groups that occurred on different dates. I want to count each type of observation by patient.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data have:&lt;/P&gt;&lt;P&gt;Studynum &amp;nbsp; &amp;nbsp; &amp;nbsp;Proc1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Proc date&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Debridement &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8/18/15&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Other &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 9/8/15&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Other &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8/3/15&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Woundvac &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8/4/15&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Debridement &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8/4/15&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Amputation &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10/5/15&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Other &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10/6/15&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Other &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10/7/15&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Want:&lt;/P&gt;&lt;P&gt;Studynum &amp;nbsp; &amp;nbsp;Debridement &amp;nbsp; &amp;nbsp; &amp;nbsp;Other &amp;nbsp; &amp;nbsp; &amp;nbsp; Woundvac &amp;nbsp; &amp;nbsp; Amputation&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 01:22:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-the-number-of-observations-in-a-SAS-data-set/m-p/537262#M147720</guid>
      <dc:creator>stancemcgraw</dc:creator>
      <dc:date>2019-02-21T01:22:37Z</dc:date>
    </item>
    <item>
      <title>Re: Determining the number of observations in a SAS data set efficiently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-the-number-of-observations-in-a-SAS-data-set/m-p/537266#M147723</link>
      <description>&lt;P&gt;One approach would get counts for each combination that exists in your data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc freq data=have;&lt;/P&gt;
&lt;P&gt;tables StudyNum * Proc1 / noprint out=counts (keep=StudyNum Proc1 count);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then transform the data set of counts into a wider form:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc transpose data=counts out=want;&lt;/P&gt;
&lt;P&gt;by StudyNum;&lt;/P&gt;
&lt;P&gt;var count;&lt;/P&gt;
&lt;P&gt;id Proc1;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Of course, this requires that any possible value for PROC1 is actually a valid name for a variable.&amp;nbsp; Also, it gives you missing values instead of zeros for combinations that didn't occur.&amp;nbsp; If you wanted to, you could go through the results later and change missing values to zero:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want_final;&lt;/P&gt;
&lt;P&gt;set want;&lt;/P&gt;
&lt;P&gt;array nums {*} _numeric_;&lt;/P&gt;
&lt;P&gt;do k=1 to dim(nums);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;if nums{k} = . then nums{k} = 0;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 01:58:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-the-number-of-observations-in-a-SAS-data-set/m-p/537266#M147723</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-02-21T01:58:54Z</dc:date>
    </item>
  </channel>
</rss>

