Note:
Method 1 uses PROC SURVEYSELECT which is part of the
SAS/STAT package in Version 7 and above. If you have
Version 6 of SAS or do not license SAS/STAT see
Method 2.
These sample files and code examples are provided by SAS Institute Inc. "as is" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. Recipients acknowledge and agree that SAS Institute shall not be liable for any damages whatsoever arising out of their use of this material. In addition, SAS Institute will provide no support for the materials contained herein.
/* Create sample data base of student grade point averages from East High */
/* School, Grades 9 through 12, 100 or more students per grade. Sampling */
/* will be done with replacement, so an individual student's score may be */
/* sampled more than once. */
data EastHigh;
format GPA 3.1;
do Grade=9 to 12;
do StudentID=1 to 100+int(201*ranuni(432098));
GPA=2.0 + (2.1*ranuni(34280));
output;
end;
end;
run;
/* Method 1: Use PROC SURVEYSELECT if you have SAS/STAT Version 7 or higher */
/* */
/* Sample 4 students from Grade 9 , 6 from Grade 10, and 10 from both Grades */
/* 11 and 12. N= is the number of observations to select from each group. */
/* Use METHOD=URS to request unrestricted random sampling, which is selection */
/* with equal probability and with replacement. The statement STRATA defines */
/* the variable that is used for grouping. OUT= names the SAS data set that */
/* will be created by the procedure. */
proc surveyselect data=EastHigh method=urs n=(4, 6, 10, 10) out=sample;
strata Grade;
run;
title 'Surveyselect Method';
proc print data=sample;
run;
/* Method 2: Use Base SAS if you do not have SAS/STAT Version 7 or higher */
/* */
/* Sample 4 students from Grade 9, 6 from Grade 10, and 10 from both Grades */
/* 11 and 12. Use RANUNI to generate the observation numbers to be sampled. */
/* Note that the data set is sorted by Grade. In a following DATA step, create */
/* a counter that increments with each iteration of the step and resets to 0 */
/* when the BY-Group changes. For each BY-Group specify the maximum number */
/* of observations to sample. Output until the counter matches the maximum */
/* number to output per BY-Group. */
/* Determine the starting observation and ending observation for each grade, */
/* or BY-Group. Use this information to determine the random observations */
/* to sample from each BY-Group. */
data bygroup_range;
keep grade start stop;
set easthigh;
by grade;
retain start;
if first.grade then start=_N_;
else if last.grade then do;
stop=_N_;
output;
end;
run;
proc print data=bygroup_range;
title 'Using Base SAS';
run;
/* RANUNI generates a random number between 0 and 1. To randomly sample from */
/* within a specified numeric range that starts at one, multiply the RANUNI */
/* result by the maximum of the range. For numeric ranges that do not start */
/* with one, multiply the RANUNI result by the range of data values you want */
/* to capture (maximum - minimum) plus one and add the first integer below */
/* the minimum to the product. */
data grab;
do i = 1 to 4;
grade = 9;
obs2sample = ceil(ranuni(1234)*292);
output;
end;
do i = 1 to 6;
grade = 10;
obs2sample = ceil(ranuni(4321)*120) + 292;
output;
end;
do i = 1 to 10;
grade = 11;
obs2sample = ceil(ranuni(6789)*166) + 412;
output;
end;
do i = 1 to 10;
grade = 12;
obs2sample = ceil(ranuni(9876)*223) + 578;
output;
end;
run;
/* GRAB contains the value for the observation number to sample from EASTHIGH */
data final;
set grab(keep= obs2sample);
set easthigh point=obs2sample;
output;
run;
proc print data=final;
title 'Using DATA step';
run;
These sample files and code examples are provided by SAS Institute Inc. "as is" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. Recipients acknowledge and agree that SAS Institute shall not be liable for any damages whatsoever arising out of their use of this material. In addition, SAS Institute will provide no support for the materials contained herein.
Surveyselect Method Student Number Expected Sampling Obs Grade GPA ID Hits Hits Weight 1 9 2.5 139 1 0.013699 73.0 2 9 2.3 216 1 0.013699 73.0 3 9 4.1 225 1 0.013699 73.0 4 9 2.5 252 1 0.013699 73.0 5 10 3.0 5 1 0.050000 20.0 6 10 2.3 30 1 0.050000 20.0 7 10 3.0 68 1 0.050000 20.0 8 10 2.3 73 1 0.050000 20.0 9 10 3.0 79 1 0.050000 20.0 10 10 3.4 93 1 0.050000 20.0 11 11 3.4 19 1 0.060241 16.6 12 11 2.1 39 1 0.060241 16.6 13 11 2.3 66 1 0.060241 16.6 14 11 2.1 67 1 0.060241 16.6 15 11 2.6 78 1 0.060241 16.6 16 11 4.0 86 1 0.060241 16.6 17 11 3.2 100 1 0.060241 16.6 18 11 3.4 122 1 0.060241 16.6 19 11 3.7 138 1 0.060241 16.6 20 11 3.6 156 1 0.060241 16.6 21 12 2.2 42 1 0.044843 22.3 22 12 3.6 55 1 0.044843 22.3 23 12 4.0 57 1 0.044843 22.3 24 12 2.5 66 1 0.044843 22.3 25 12 2.7 123 1 0.044843 22.3 26 12 2.7 150 1 0.044843 22.3 27 12 2.1 158 1 0.044843 22.3 28 12 3.3 183 1 0.044843 22.3 29 12 4.1 204 1 0.044843 22.3 30 12 3.5 214 1 0.044843 22.3 Using Base SAS Obs Grade start stop 1 9 1 292 2 10 293 412 3 11 413 578 4 12 579 801 Using DATA step Student Obs GPA Grade ID 1 3.9 9 72 2 2.8 9 27 3 2.1 9 112 4 3.5 9 29 5 2.4 10 31 6 2.6 10 11 7 3.0 10 5 8 3.8 10 13 9 3.1 10 54 10 2.9 10 18 11 3.8 11 7 12 3.7 11 76 13 3.5 11 15 14 2.2 11 151 15 2.9 11 161 16 2.2 11 123 17 2.1 11 67 18 2.5 11 62 19 2.6 11 55 20 2.4 11 85 21 3.8 12 64 22 3.3 12 79 23 2.2 12 58 24 2.9 12 98 25 2.9 12 28 26 3.9 12 160 27 3.6 12 1 28 2.1 12 114 29 2.8 12 202 30 2.4 12 53
Type: | Sample |
Topic: | Analytics ==> Survey Sampling and Analysis SAS Reference ==> DATA Step SAS Reference ==> Procedures ==> SURVEYSELECT |
Date Modified: | 2016-01-11 16:09:15 |
Date Created: | 2004-09-30 14:09:11 |
Product Family | Product | Host | SAS Release | |
Starting | Ending | |||
SAS System | Base SAS | Aster Data nCluster on Linux x64 | ||
DB2 Universal Database on AIX | ||||
DB2 Universal Database on Linux x64 | ||||
Greenplum on Linux x64 | ||||
Netezza TwinFin 32bit blade | ||||
Netezza TwinFin 32-bit SMP Hosts | ||||
Netezza TwinFin 64-bit S-Blades | ||||
Netezza TwinFin 64-bit SMP Hosts | ||||
Teradata on Linux | ||||
z/OS | ||||
z/OS 64-bit | ||||
OpenVMS VAX | ||||
Microsoft® Windows® for 64-Bit Itanium-based Systems | ||||
Microsoft Windows Server 2003 Datacenter 64-bit Edition | ||||
Microsoft Windows Server 2003 Enterprise 64-bit Edition | ||||
Microsoft Windows XP 64-bit Edition | ||||
Microsoft® Windows® for x64 | ||||
OS/2 | ||||
Microsoft Windows 8 Enterprise 32-bit | ||||
Microsoft Windows 8 Enterprise x64 | ||||
Microsoft Windows 8 Pro 32-bit | ||||
Microsoft Windows 8 Pro x64 | ||||
Microsoft Windows 8.1 Enterprise 32-bit | ||||
Microsoft Windows 8.1 Enterprise x64 | ||||
Microsoft Windows 8.1 Pro | ||||
Microsoft Windows 8.1 Pro 32-bit | ||||
Microsoft Windows 10 | ||||
Microsoft Windows 95/98 | ||||
Microsoft Windows 2000 Advanced Server | ||||
Microsoft Windows 2000 Datacenter Server | ||||
Microsoft Windows 2000 Server | ||||
Microsoft Windows 2000 Professional | ||||
Microsoft Windows NT Workstation | ||||
Microsoft Windows Server 2003 Datacenter Edition | ||||
Microsoft Windows Server 2003 Enterprise Edition | ||||
Microsoft Windows Server 2003 Standard Edition | ||||
Microsoft Windows Server 2003 for x64 | ||||
Microsoft Windows Server 2008 | ||||
Microsoft Windows Server 2008 R2 | ||||
Microsoft Windows Server 2008 for x64 | ||||
Microsoft Windows Server 2012 Datacenter | ||||
Microsoft Windows Server 2012 R2 Datacenter | ||||
Microsoft Windows Server 2012 R2 Std | ||||
Microsoft Windows Server 2012 Std | ||||
Microsoft Windows XP Professional | ||||
Windows 7 Enterprise 32 bit | ||||
Windows 7 Enterprise x64 | ||||
Windows 7 Home Premium 32 bit | ||||
Windows 7 Home Premium x64 | ||||
Windows 7 Professional 32 bit | ||||
Windows 7 Professional x64 | ||||
Windows 7 Ultimate 32 bit | ||||
Windows 7 Ultimate x64 | ||||
Windows Millennium Edition (Me) | ||||
Windows Vista | ||||
Windows Vista for x64 | ||||
64-bit Enabled AIX | ||||
64-bit Enabled HP-UX | ||||
64-bit Enabled Solaris | ||||
ABI+ for Intel Architecture | ||||
AIX | ||||
HP-UX | ||||
HP-UX IPF | ||||
IRIX | ||||
Linux | ||||
Linux for x64 | ||||
Linux on Itanium | ||||
OpenVMS Alpha | ||||
OpenVMS on HP Integrity | ||||
Solaris | ||||
Solaris for x64 | ||||
Tru64 UNIX | ||||
SAS System | SAS/STAT | z/OS | ||
z/OS 64-bit | ||||
OpenVMS VAX | ||||
Microsoft® Windows® for 64-Bit Itanium-based Systems | ||||
Microsoft Windows Server 2003 Datacenter 64-bit Edition | ||||
Microsoft Windows Server 2003 Enterprise 64-bit Edition | ||||
Microsoft Windows XP 64-bit Edition | ||||
Microsoft® Windows® for x64 | ||||
OS/2 | ||||
Microsoft Windows 8 Enterprise 32-bit | ||||
Microsoft Windows 8 Enterprise x64 | ||||
Microsoft Windows 8 Pro 32-bit | ||||
Microsoft Windows 8 Pro x64 | ||||
Microsoft Windows 8.1 Enterprise 32-bit | ||||
Microsoft Windows 8.1 Enterprise x64 | ||||
Microsoft Windows 8.1 Pro | ||||
Microsoft Windows 8.1 Pro 32-bit | ||||
Microsoft Windows 10 | ||||
Microsoft Windows 95/98 | ||||
Microsoft Windows 2000 Advanced Server | ||||
Microsoft Windows 2000 Datacenter Server | ||||
Microsoft Windows 2000 Server | ||||
Microsoft Windows 2000 Professional | ||||
Microsoft Windows NT Workstation | ||||
Microsoft Windows Server 2003 Datacenter Edition | ||||
Microsoft Windows Server 2003 Enterprise Edition | ||||
Microsoft Windows Server 2003 Standard Edition | ||||
Microsoft Windows Server 2003 for x64 | ||||
Microsoft Windows Server 2008 | ||||
Microsoft Windows Server 2008 R2 | ||||
Microsoft Windows Server 2008 for x64 | ||||
Microsoft Windows Server 2012 Datacenter | ||||
Microsoft Windows Server 2012 R2 Datacenter | ||||
Microsoft Windows Server 2012 R2 Std | ||||
Microsoft Windows Server 2012 Std | ||||
Microsoft Windows XP Professional | ||||
Windows 7 Enterprise 32 bit | ||||
Windows 7 Enterprise x64 | ||||
Windows 7 Home Premium 32 bit | ||||
Windows 7 Home Premium x64 | ||||
Windows 7 Professional 32 bit | ||||
Windows 7 Professional x64 | ||||
Windows 7 Ultimate 32 bit | ||||
Windows 7 Ultimate x64 | ||||
Windows Millennium Edition (Me) | ||||
Windows Vista | ||||
Windows Vista for x64 | ||||
64-bit Enabled AIX | ||||
64-bit Enabled HP-UX | ||||
64-bit Enabled Solaris | ||||
ABI+ for Intel Architecture | ||||
AIX | ||||
HP-UX | ||||
HP-UX IPF | ||||
IRIX | ||||
Linux | ||||
Linux for x64 | ||||
Linux on Itanium | ||||
OpenVMS Alpha | ||||
OpenVMS on HP Integrity | ||||
Solaris | ||||
Solaris for x64 | ||||
Tru64 UNIX |