<?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: Random Numbers summing to a particular value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559789#M156379</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/32733"&gt;@FreelanceReinh&lt;/a&gt;&amp;nbsp; Thanks so much. I tested this and it works perfectly! Awesome!&lt;/P&gt;</description>
    <pubDate>Fri, 17 May 2019 20:30:18 GMT</pubDate>
    <dc:creator>Chugvenk</dc:creator>
    <dc:date>2019-05-17T20:30:18Z</dc:date>
    <item>
      <title>Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559505#M156236</link>
      <description>&lt;P&gt;Team,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset of 5000 rows. I want to create a new column (say x) that generates random integers so that the sum of those integers (in the 5000 rows) comes to 25000. How do I achieve this in SAS?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Suhrit&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2019 22:28:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559505#M156236</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-16T22:28:49Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559507#M156238</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/272550"&gt;@Chugvenk&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Team,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a dataset of 5000 rows. I want to create a new column (say x) that generates random integers so that the sum of those integers (in the 5000 rows) comes to 25000. How do I achieve this in SAS?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Suhrit&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Do they have to be positive integers?&lt;/P&gt;
&lt;P&gt;What test for randomness do they have to pass?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And the purpose of this exercise is what?&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2019 22:38:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559507#M156238</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-05-16T22:38:31Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559512#M156239</link>
      <description>&lt;P&gt;Yes, they need to be positive integers.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Purpose: For creating a mockup for reporting, until we actually get the data from the warehouse.&lt;/P&gt;&lt;P&gt;Test for Randomness: Honestly, I'm not sure what this means. It should just be 5000 random numbers summing to 25000. I can do this in excel, I'm new to SAS, so I am hoping there are functions for this.&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2019 23:11:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559512#M156239</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-16T23:11:20Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559517#M156241</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/272550"&gt;@Chugvenk&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To create random numbers or unique id's (i.e. a sequence number) is no problem. It's the "summing up to 25000" requirement where one would need to come up with some custom logic and then implement the code for it..&lt;/P&gt;
&lt;P&gt;Not sure how you would implement such a "summing up to 25000" easily in Excel. Can you explain?&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2019 23:17:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559517#M156241</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-05-16T23:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559519#M156242</link>
      <description>&lt;P&gt;Patrick,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It can be done in excel, I have done it before. I need to do this in SAS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://stackoverflow.com/questions/21782329/generate-n-random-numbers-whose-sum-is-a-constant-k-excel" target="_blank"&gt;https://stackoverflow.com/questions/21782329/generate-n-random-numbers-whose-sum-is-a-constant-k-excel&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And yes, we would need a custom logic, I was asking help with that since I am new to SAS.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Suhrit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 May 2019 23:25:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559519#M156242</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-16T23:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559521#M156243</link>
      <description>&lt;P&gt;I don't see integers in the Excel link you provide.&lt;/P&gt;
&lt;P&gt;This works:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  do VAL=1 to 5000;
    output; 
  end;  
run;

data WANT;
  set HAVE end=LASTOBS;
  array R [5000] _temporary_;
  if _N_=1 then do; 
    do I=1 to 5000;
      R[I]=int(rand('UNIFORM',10,0));
    end;
    DIFF=25000-sum(of R[*]);
    do I=1 to DIFF;
      R[int(rand('UNIFORM',5000,1))]+(DIFF&amp;gt;0);
    end;
    VET+sum(of R[*]);
  end;
  RAN=R[_N_];
run;          

proc print data=WANT(firstobs=4990 keep=VAL RAN VET) noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;&lt;BR /&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;VAL&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;VET&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;RAN&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4990&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4991&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4992&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4993&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4994&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4995&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4996&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4997&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4998&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;4999&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;5000&lt;/TD&gt;
&lt;TD class="r data"&gt;25000&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 00:04:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559521#M156243</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-17T00:04:33Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559541#M156256</link>
      <description>&lt;P&gt;50 random integers summing up to 250:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let sum=250;
%let nb=50;

data want;
call streaminit(976785676);
array r {0:&amp;amp;nb} _temporary_;
r{0} = 0;
do i = 1 to &amp;amp;nb;
    r{i} = r{i-1} + rand("uniform");
    end;
do i = 1 to &amp;amp;nb;
    r{i} = round(r{i}*&amp;amp;sum/r{&amp;amp;nb});
    number = r{i} - r{i-1};
    output;
    end;
keep number;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 17 May 2019 03:19:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559541#M156256</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-05-17T03:19:44Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559706#M156341</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/272550"&gt;@Chugvenk&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Yes, they need to be positive integers.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Purpose: For creating a mockup for reporting, until we actually get the data from the warehouse.&lt;/P&gt;
&lt;P&gt;Test for Randomness: Honestly, I'm not sure what this means. It should just be 5000 random numbers summing to 25000. I can do this in excel, I'm new to SAS, so I am hoping there are functions for this.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;There are statistical tests that provide information as to how likely your data is to be "random" just like a Ttest can be used to see if the means of two sets are the same (or not).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 16:00:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559706#M156341</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-05-17T16:00:25Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559754#M156366</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/272550"&gt;@Chugvenk&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You asked for random numbers, but your specifications (5000 positive integers with sum 25000) do not uniquely determine a distribution. That's why different solutions have been presented. Below is an approach that allows &lt;EM&gt;you&lt;/EM&gt; to specify a suitable distribution. This is likely overkill for your purpose, but later readers of this thread may have other ideas what to do with those random integers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Obviously, a "suitable" distribution must have an expected value (close to) 25000/5000=5. So, the uniform distribution on {1, 2, ..., 9} is a good candidate. If you want this (and you have SAS 9.4&lt;EM&gt;M5&lt;/EM&gt; or later), specify&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let dist=rand('integer', 9);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But maybe you would like to see at least a few two-digit integers. Then, how about a binomial distribution with n=16, p=1/4 and adding 1 to the random variates to avoid zeros and to adjust the expected value? Check out the results of the code below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let sum=25000;
%let nb=5000;
%let dist=rand('binom', 0.25, 16)+1; /* suitable distribution */
%let max=17; /* an upper bound for the above distribution */
%let seed=271828182;
%let maxiter=10000;

/* Create one-row dataset with frequencies n1, ..., n&amp;amp;max for integers 1, ..., &amp;amp;max */

data frq(keep=n:);
call streaminit(&amp;amp;seed);
array tn[&amp;amp;max] _temporary_;
array  n[&amp;amp;max];
d=1e15;
do _n_=1 to &amp;amp;maxiter until(s=&amp;amp;sum);
  call missing(of tn[*]);
  do j=1 to &amp;amp;nb;
    tn[&amp;amp;dist]+1;
  end;
  ts=0;
  do k=1 to &amp;amp;max;
    tn[k]+0;
    ts+k*tn[k];
  end;
  td=abs(&amp;amp;sum-ts);
  if td&amp;lt;d then do;
    d=td;
    s=ts;
    do k=1 to &amp;amp;max;
      n[k]=tn[k];
    end;    
  end;    
end;
put "The optimum sum (found in &amp;lt;=&amp;amp;maxiter iterations) is " s +(-1) '.';
if s ne &amp;amp;sum then put 'Sorry!';
run;

/* Create sorted dataset (view) with &amp;amp;nb integers X */

data rndv(keep=x) / view=rndv;
set frq;
array n[&amp;amp;max];
do x=1 to &amp;amp;max;
  do i=1 to n[x];
    output;
  end;
end;
run;

/* Sort integers randomly */

proc surveyselect data=rndv rate=1 seed=&amp;amp;seed out=rnd outrandom noprint;
run;

/* Final checks -- optional */

proc freq data=rnd;
tables x;
run;

proc means data=rnd sum;
var x;
run;

/* Combine HAVE dataset with random integers */

data want;
merge have rnd;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 17 May 2019 18:43:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559754#M156366</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2019-05-17T18:43:09Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559759#M156367</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; Thank you so much. This absolutely works!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had no idea this code would be so complex. You are awesome! Thanks again!&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 19:06:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559759#M156367</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-17T19:06:30Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559762#M156369</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/462"&gt;@PGStats&lt;/a&gt;&amp;nbsp; Unfortunately, this didn't work. The solution provided by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp; is the correct one I was looking for.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That said, thanks for getting back to me. I appreciate it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 19:09:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559762#M156369</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-17T19:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559770#M156372</link>
      <description>&lt;P&gt;The solution I proposed above DID work, I tested it. If it didn't work for you, I'd like to know how.&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 19:28:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559770#M156372</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-05-17T19:28:43Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559788#M156378</link>
      <description>&lt;P&gt;&amp;nbsp;the dataset you created was a bunch of numbers that went uptil 250 (250 was the last number), which was not quite what I was looking for. I was looking for a column of random numbers and the total of that should have been 250. Again, maybe I didn't explain it correctly, so my bad. Thanks for getting back to me! Have a good day!&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 20:25:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559788#M156378</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-17T20:25:45Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559789#M156379</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/32733"&gt;@FreelanceReinh&lt;/a&gt;&amp;nbsp; Thanks so much. I tested this and it works perfectly! Awesome!&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 20:30:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559789#M156379</guid>
      <dc:creator>Chugvenk</dc:creator>
      <dc:date>2019-05-17T20:30:18Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559807#M156384</link>
      <description>&lt;P&gt;My own testing goes like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;NOTE: AUTOEXEC processing completed.

1    %let sum=250;
2    %let nb=50;
3
4    data want;
5    call streaminit(976785676);
6    array r {0:&amp;amp;nb} _temporary_;
7    r{0} = 0;
8    do i = 1 to &amp;amp;nb;
9        r{i} = r{i-1} + rand("uniform");
10       end;
11   do i = 1 to &amp;amp;nb;
12       r{i} = round(r{i}*&amp;amp;sum/r{&amp;amp;nb});
13       number = r{i} - r{i-1};
14       output;
15       end;
16   keep number;
17   run;

NOTE: The data set WORK.WANT has 50 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.90 seconds
      cpu time            0.15 seconds


18
19   data _null_;
20   do j = 1 to 5;
21       do i = 1 to 10;
22           set want;
23           put number 2. @;
24           end;
25       put;
26       end;
27   run;

 7 4 5 5 3 7 5 7 2 5
 6 2 3 4 8 5 4 0 7 4
 8 2 5 8 7 3 7 6 8 5
 4 6 2 8 1 4 7 2 4 3
 4 5 9 9 4 2 7 6 3 8
NOTE: There were 50 observations read from the data set WORK.WANT.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
&lt;/PRE&gt;
&lt;P&gt;with the sum of these 50 numbers being 250.&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2019 22:05:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559807#M156384</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-05-17T22:05:07Z</dc:date>
    </item>
    <item>
      <title>Re: Random Numbers summing to a particular value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559876#M156416</link>
      <description>&lt;P&gt;The same idea with PGStats.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
call streaminit(123456789);
do id=1 to 5000;
 r=ceil(5*rand('uniform'));
 cum_r+r;
 output;
end;
run;
proc sql noprint;
select sum(r) into : sum 
 from have;
quit;
data temp;
 set have end=last;
 cum_x=ceil(25000*cum_r/&amp;amp;sum);
run;
data want;
 set temp;
 x=dif(cum_x);
 if _n_=1 then x=cum_x;
 keep id x;
run;



proc means data=want sum;
var x;
run;
proc freq data=want;
table x;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 18 May 2019 13:09:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Random-Numbers-summing-to-a-particular-value/m-p/559876#M156416</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-05-18T13:09:52Z</dc:date>
    </item>
  </channel>
</rss>

