<?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: Stratified Random Sampling by sub groups in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419767#M103244</link>
    <description>&lt;P&gt;Here is a simple approach for exact race and age matching:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cases;
input id race $ age;
datalines;
1 A 21
3 B 31
4 B 31
;

data control;
input id race $ age;
datalines;
5 A 18
6 A 21
7 A 21
8 B 10
9 B 31
10 B 31
11 B 31
12 B 32
;

/* Create a copy of each case for each matched control */ 
data cases2;
set cases;
do i = 1 to 2;
    output;
    end;
drop i;
run;

/* Put the controls in random order */
data controlr;
set control;
rnd = rand('uniform');
run;

proc sort data=controlr; by id race age rnd; run;

/* Match cases and controls */
data sample;
merge 
    cases2 (in=inCases)
    controlr (rename=id=controlId);
by race age;
if controlId = lag(controlId) then controlId = .;
if inCases;
drop rnd;
run;

proc print data=sample; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sat, 09 Dec 2017 05:19:21 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2017-12-09T05:19:21Z</dc:date>
    <item>
      <title>Stratified Random Sampling by sub groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419762#M103242</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am working on a large data set for my thesis and need help with stratified random sampling within groups. Data set has client variable grouped as Female case, Male_cases, Female_control and Male_control. I want to select all the male and female cases but for the control group I want to match 4 controls on age and race, for each case. i.e. I want to match 4 F&lt;SPAN&gt;emale_controls for each Female_case&amp;nbsp; and 4 Male_controls for each Male_case.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Client&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Race&amp;nbsp; &amp;nbsp; Age&amp;nbsp; &amp;nbsp; &amp;nbsp;Hospitals ID&amp;nbsp; &amp;nbsp; Services&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Female_cases&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Black&amp;nbsp; &amp;nbsp; &amp;nbsp;45&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;000152&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PS&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Male_cases&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;White&amp;nbsp; &amp;nbsp; &amp;nbsp;34&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;000121&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HS&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Female_control&amp;nbsp; &amp;nbsp; &amp;nbsp; Asian&amp;nbsp; &amp;nbsp; 50&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 000542&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HS&lt;/P&gt;&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Male_control&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; White&amp;nbsp; &amp;nbsp; 44&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 000199&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to add that I am using SAS university Edition.&lt;/P&gt;</description>
      <pubDate>Sat, 09 Dec 2017 03:14:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419762#M103242</guid>
      <dc:creator>zohraafzal</dc:creator>
      <dc:date>2017-12-09T03:14:32Z</dc:date>
    </item>
    <item>
      <title>Re: Stratified Random Sampling by sub groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419764#M103243</link>
      <description>&lt;P&gt;How do you want to match ages? Do you want exact matches, matches within classes (21-25,26-30, ..), something else?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Dec 2017 04:09:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419764#M103243</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-12-09T04:09:08Z</dc:date>
    </item>
    <item>
      <title>Re: Stratified Random Sampling by sub groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419767#M103244</link>
      <description>&lt;P&gt;Here is a simple approach for exact race and age matching:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cases;
input id race $ age;
datalines;
1 A 21
3 B 31
4 B 31
;

data control;
input id race $ age;
datalines;
5 A 18
6 A 21
7 A 21
8 B 10
9 B 31
10 B 31
11 B 31
12 B 32
;

/* Create a copy of each case for each matched control */ 
data cases2;
set cases;
do i = 1 to 2;
    output;
    end;
drop i;
run;

/* Put the controls in random order */
data controlr;
set control;
rnd = rand('uniform');
run;

proc sort data=controlr; by id race age rnd; run;

/* Match cases and controls */
data sample;
merge 
    cases2 (in=inCases)
    controlr (rename=id=controlId);
by race age;
if controlId = lag(controlId) then controlId = .;
if inCases;
drop rnd;
run;

proc print data=sample; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 Dec 2017 05:19:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419767#M103244</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-12-09T05:19:21Z</dc:date>
    </item>
    <item>
      <title>Re: Stratified Random Sampling by sub groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419770#M103247</link>
      <description>&lt;P&gt;PROC psmatch?&lt;/P&gt;</description>
      <pubDate>Sat, 09 Dec 2017 05:29:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/419770#M103247</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-12-09T05:29:25Z</dc:date>
    </item>
    <item>
      <title>Re: Stratified Random Sampling by sub groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/420580#M103520</link>
      <description>&lt;P&gt;Thank you for your message and sorry for the late reply!&lt;/P&gt;&lt;P&gt;I will use the code you suggested and see what happens.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 20:59:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Stratified-Random-Sampling-by-sub-groups/m-p/420580#M103520</guid>
      <dc:creator>zohraafzal</dc:creator>
      <dc:date>2017-12-12T20:59:15Z</dc:date>
    </item>
  </channel>
</rss>

