<?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 sample until in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66142#M18871</link>
    <description>Hi &lt;BR /&gt;
&lt;BR /&gt;
You can find a lot of sampling samples on the SAS website.&lt;BR /&gt;
&lt;BR /&gt;
May be the following links are helpful:&lt;BR /&gt;
&lt;A href="http://support.sas.com/rnd/app/da/new/dasurvey.html" target="_blank"&gt;http://support.sas.com/rnd/app/da/new/dasurvey.html&lt;/A&gt;&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/?st=11&amp;amp;la=en&amp;amp;qm=3&amp;amp;ct=54042" target="_blank"&gt;http://support.sas.com/kb/?st=11&amp;amp;la=en&amp;amp;qm=3&amp;amp;ct=54042&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
HTH&lt;BR /&gt;
Patrick</description>
    <pubDate>Tue, 17 May 2011 09:23:43 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2011-05-17T09:23:43Z</dc:date>
    <item>
      <title>Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66137#M18866</link>
      <description>Dear Sas members,&lt;BR /&gt;
&lt;BR /&gt;
I have difficulties in selecting a random sample. &lt;BR /&gt;
I have to create 1000 portfolios. These portfolios have to pick random stocks with weights (ranging from 0 to 0.05) UNTIL the sum of 1 is reached. Which has to change every time a new portoflio is created.&lt;BR /&gt;
&lt;BR /&gt;
--&amp;gt;So to be clear: &lt;BR /&gt;
&lt;BR /&gt;
I have 1 portfolio that has to select a stocks with random weights until the weights sum up to 1 or close to one.&lt;BR /&gt;
&lt;BR /&gt;
Than again I assign random weights to the stocks and create a second portfolio that randomly chooses stocks until the sums of the weights is 1;.. and so on...&lt;BR /&gt;
&lt;BR /&gt;
The only column I have are the STOCKS (500 stocks-500 rows)&lt;BR /&gt;
&lt;BR /&gt;
STOCKS&lt;BR /&gt;
&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
I have come up with this code but I am stuck&lt;BR /&gt;
&lt;BR /&gt;
/*create random weights between 0 and 5 for each stock.*/&lt;BR /&gt;
&lt;BR /&gt;
data Sample1;&lt;BR /&gt;
set SASUSER.RANDOM_WEIGHTS;&lt;BR /&gt;
rand = 1+(5-1)*ranuni(692);&lt;BR /&gt;
if rand ge 0 and rand le 5;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/*selecting a random sample from a data set is to, first, use a DATA step to generate a random vector, &lt;BR /&gt;
then use PROC sort to rearrange the data by that random vector and then select first k observations*/&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
DATA Sample2 ; &lt;BR /&gt;
  SET Sample1 ; &lt;BR /&gt;
  random=RANUNI(-1);             /* GENERATE A RANDOM VECTOR */ &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
PROC SORT DATA=Sample2; &lt;BR /&gt;
  BY random;       /* SORT OBSERVATIONS BY THE RANDOM VECTOR */ &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
Thanks for helping me out if you know the solution...&lt;BR /&gt;
&lt;BR /&gt;
Kind regards,&lt;BR /&gt;
&lt;BR /&gt;
Stefaan

Message was edited by: OzoneX15</description>
      <pubDate>Mon, 16 May 2011 18:18:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66137#M18866</guid>
      <dc:creator>OzoneX15</dc:creator>
      <dc:date>2011-05-16T18:18:21Z</dc:date>
    </item>
    <item>
      <title>Re: Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66138#M18867</link>
      <description>It seems that you're is approach is good and that you are stuck on how to increment to weight up to 1.  SAS has a RETAIN feature that retains the value from one record to another.  See my below code using an example;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data stocks;&lt;BR /&gt;
  set sashelp.stocks;&lt;BR /&gt;
  weight=ranuni(8)*.05;&lt;BR /&gt;
  rand=ranuni(789);&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=stocks;&lt;BR /&gt;
  by rand;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data portfolio;&lt;BR /&gt;
  set stocks;&lt;BR /&gt;
  retain one 0;&lt;BR /&gt;
&lt;BR /&gt;
  one+weight;&lt;BR /&gt;
  if one&amp;lt;=1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Regards</description>
      <pubDate>Mon, 16 May 2011 19:13:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66138#M18867</guid>
      <dc:creator>darrylovia</dc:creator>
      <dc:date>2011-05-16T19:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66139#M18868</link>
      <description>for some reason my post was truncated.  &lt;BR /&gt;
&lt;BR /&gt;
here is the completed code&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data stocks;&lt;BR /&gt;
  set sashelp.stocks;&lt;BR /&gt;
  weight=ranuni(8)*.05;&lt;BR /&gt;
  rand=ranuni(789);&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=stocks;&lt;BR /&gt;
  by rand;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data portfolio;&lt;BR /&gt;
  set stocks;&lt;BR /&gt;
  retain one 0;&lt;BR /&gt;
&lt;BR /&gt;
  one+weight;&lt;BR /&gt;
  if one le 1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Regards</description>
      <pubDate>Mon, 16 May 2011 19:18:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66139#M18868</guid>
      <dc:creator>darrylovia</dc:creator>
      <dc:date>2011-05-16T19:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66140#M18869</link>
      <description>Hi.&lt;BR /&gt;
Stefaan. It is nice to see you.&lt;BR /&gt;
How about this:&lt;BR /&gt;
[pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data stock;&lt;BR /&gt;
infile datalines truncover;&lt;BR /&gt;
input stock $100.;&lt;BR /&gt;
datalines;&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
AN8068571086&lt;BR /&gt;
ANN4327C1220&lt;BR /&gt;
ANN6748L1027&lt;BR /&gt;
AT0000603709&lt;BR /&gt;
AT0000609607&lt;BR /&gt;
AT0000620158&lt;BR /&gt;
AT0000633300&lt;BR /&gt;
AT0000644505&lt;BR /&gt;
AT0000652011&lt;BR /&gt;
AT0000676903&lt;BR /&gt;
AT0000720008&lt;BR /&gt;
AT0000729108&lt;BR /&gt;
AT0000737705&lt;BR /&gt;
AT0000741053&lt;BR /&gt;
AT0000743059&lt;BR /&gt;
AT0000746409&lt;BR /&gt;
AT0000809058&lt;BR /&gt;
AT0000821103&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
%macro port;&lt;BR /&gt;
%do i=1 %to 1000;&lt;BR /&gt;
proc surveyselect data=stock method=srs n=100 out=sample&amp;amp;i;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data port&amp;amp;i;&lt;BR /&gt;
  set sample&amp;amp;i;&lt;BR /&gt;
  weight=ranuni(-1)*.05;&lt;BR /&gt;
  sum+weight;&lt;BR /&gt;
  if sum gt 1  then stop;&lt;BR /&gt;
run;&lt;BR /&gt;
%end;&lt;BR /&gt;
&lt;BR /&gt;
data want;&lt;BR /&gt;
 set port: indsname=dsn;&lt;BR /&gt;
 portfolio=scan(dsn,2);&lt;BR /&gt;
 drop dsn;&lt;BR /&gt;
run;&lt;BR /&gt;
%mend;&lt;BR /&gt;
&lt;BR /&gt;
%port&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
But you need SAS9.2 to run this code . Hope you already have.&lt;BR /&gt;
&lt;BR /&gt;
Thanks&lt;BR /&gt;
Ksharp</description>
      <pubDate>Tue, 17 May 2011 05:35:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66140#M18869</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-05-17T05:35:19Z</dc:date>
    </item>
    <item>
      <title>Re: Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66141#M18870</link>
      <description>Thanks darrylovia!&lt;BR /&gt;
and thanks again Ksharp!&lt;BR /&gt;
&lt;BR /&gt;
Really learning alot from these codes,&lt;BR /&gt;
&lt;BR /&gt;
Kind regards,&lt;BR /&gt;
&lt;BR /&gt;
Stefaan

Message was edited by: OzoneX15</description>
      <pubDate>Tue, 17 May 2011 05:57:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66141#M18870</guid>
      <dc:creator>OzoneX15</dc:creator>
      <dc:date>2011-05-17T05:57:44Z</dc:date>
    </item>
    <item>
      <title>Re: Random sample until</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66142#M18871</link>
      <description>Hi &lt;BR /&gt;
&lt;BR /&gt;
You can find a lot of sampling samples on the SAS website.&lt;BR /&gt;
&lt;BR /&gt;
May be the following links are helpful:&lt;BR /&gt;
&lt;A href="http://support.sas.com/rnd/app/da/new/dasurvey.html" target="_blank"&gt;http://support.sas.com/rnd/app/da/new/dasurvey.html&lt;/A&gt;&lt;BR /&gt;
&lt;A href="http://support.sas.com/kb/?st=11&amp;amp;la=en&amp;amp;qm=3&amp;amp;ct=54042" target="_blank"&gt;http://support.sas.com/kb/?st=11&amp;amp;la=en&amp;amp;qm=3&amp;amp;ct=54042&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
HTH&lt;BR /&gt;
Patrick</description>
      <pubDate>Tue, 17 May 2011 09:23:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Random-sample-until/m-p/66142#M18871</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2011-05-17T09:23:43Z</dc:date>
    </item>
  </channel>
</rss>

