<?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: Generate a random number without repetition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100329#M21040</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's really necessary to be random?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A sequence number will guarantee the uniqueness of the value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers from Portugal!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Daniel Santos @ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Oct 2012 17:27:27 GMT</pubDate>
    <dc:creator>DanielSantos</dc:creator>
    <dc:date>2012-10-18T17:27:27Z</dc:date>
    <item>
      <title>Generate a random number without repetition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100328#M21039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I try to make the microsimulation with SAS, meaning that a starting database is regenerated assuming certain conditions and assumptions. Some observations would also be added. In the starting database, a variable NOINDIV identifies each case. My problem is the following: I want to assign a single NOINDIV to each observations added. I can not use a random function (rand) to assign this NOINDIV because the rounded number generated could be not unique. Anyone knows what to do?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Oct 2012 17:09:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100328#M21039</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2012-10-18T17:09:16Z</dc:date>
    </item>
    <item>
      <title>Re: Generate a random number without repetition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100329#M21040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's really necessary to be random?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A sequence number will guarantee the uniqueness of the value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers from Portugal!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Daniel Santos @ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Oct 2012 17:27:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100329#M21040</guid>
      <dc:creator>DanielSantos</dc:creator>
      <dc:date>2012-10-18T17:27:27Z</dc:date>
    </item>
    <item>
      <title>Re: Generate a random number without repetition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100330#M21041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree with Daniel. And if you want your ID number to "look" random, generate a SAS dataset with two variables; a sequential number and a random number. Then sort it by the random number, and assign your sequential numbers in the resulting order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Oct 2012 17:44:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100330#M21041</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2012-10-18T17:44:22Z</dc:date>
    </item>
    <item>
      <title>Re: Generate a random number without repetition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100331#M21042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your comment. The randomness is not necessary, but I'm not sure what to do with what you suggest. &lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;To clarify, it's a&lt;/SPAN&gt;&lt;SPAN class="hps"&gt; population projection on 20 years, so there is 20 regenerations.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Cases&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;added during each regeneration &lt;/SPAN&gt;&lt;SPAN class="hps"&gt;are immigrants. Once the ID number is assigned, it must be conserved for each regeneration.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Oct 2012 18:07:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100331#M21042</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2012-10-18T18:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: Generate a random number without repetition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100332#M21043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P class="p1"&gt;Assuming you have a starting population (StudyPop) and a series of separate datasets of immigrants (NewPop1980 etc), you can assign the sequential NOINDIV to the starting population with an initial id of e.g. 123457 (one more than in the Retain statement) :&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Data StudyPop ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retain NOINDIV 123456 ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set StudyPop ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOINDIV = NOINDIV + 1 ;&lt;/P&gt;&lt;P class="p1"&gt;Run ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;The following steps can be implemented as a macro, run it for each new population to be added.&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;To continue the sequential series; first find the maximum NOINDIV from your previous generation and insert that into a macro variable; then use the maximum as the starting point for the next series.&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;%Macro AddNewPop (NewPop) ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Proc SQL NoPrint ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Max (NOINDIV)&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Into :MaxNOINDIV&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; From&amp;nbsp; StudyPop&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P class="p1"&gt;Quit ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;/* Add the NOINDIV sequential value to the new population */&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Data NewPop ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retain NOINDIV &amp;amp;MaxNOINDIV ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set NewPop ;&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOINDIV = NOINDIV + 1 ;&lt;/P&gt;&lt;P class="p1"&gt;Run ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;/* Append the new population to the study population */&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Proc Append&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Base = StudyPop&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data = NewPop&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P class="p1"&gt;Run ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;%Mend ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;Now use the macro thus :&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;%AddNewPop (NewPop1980) ;&lt;/P&gt;&lt;P class="p1"&gt;%AddNewPop (NewPop1981) ;&lt;/P&gt;&lt;P class="p1"&gt;%AddNewPop (NewPop1982) ;&lt;/P&gt;&lt;P class="p2"&gt;&lt;/P&gt;&lt;P class="p1"&gt;etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2012 00:55:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Generate-a-random-number-without-repetition/m-p/100332#M21043</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2012-10-19T00:55:08Z</dc:date>
    </item>
  </channel>
</rss>

