2016-04-28 20 views
0

Gibt es eine Möglichkeit, den Anteil einer Variablen in SAS in Stichproben zu ändern und zu manipulieren?SAS Ändern Sie den Anteil einer zufälligen Stichprobe

Sagen wir, ich habe eine Tabelle mit 1000 Leuten. (500 männlich und 500 weiblich)

Wenn ich eine zufällige Stichprobe von 100 mit Geschlechterschichten haben will - ich werde 50 Männer und 50 Frauen in meiner Ausgabe haben.

Ich möchte lernen, ob es einen Weg gibt, den gewünschten Anteil an Geschlechterwerten zu haben?

Kann ich eine zufällige Stichprobe von 100 mit 70 Männern und 30 Frauen haben?

Antwort

0

Im Allgemeinen ist das proc surveyselect für.

Aber für eine schnelle und schmutzige datastep Lösung:

data in_data; 
    do i= 1 to 500; 
     sex = 'M'; output; 
     sex = 'F'; output; 
    end; 
run; 
data in_data; 
    set in_data; 
    rannum = ranuni(12345); 
run; 
proc sort data= in_data; by rannum; run; 
data sample_data; 
    set in_data; 
    retain count_m count_f 0; 
    if  sex = 'M' and count_m lt 70 then do; count_m + 1; output; end; 
    else if sex = 'F' and count_f lt 30 then do; count_f + 1; output; end; 
run;  
proc freq data= sample_data; 
    table sex; 
run; 
2

PROC SURVEYSELECT ist die Art und Weise, dies zu tun, einen Datensatz für n oder samprate anstelle einer Nummer.

data strata_to_Sample; 
    length sex $1; 
    input sex $ _NSIZE_; 
datalines; 
M 70 
F 30 
;;;; 
run; 
proc sort data=strata_To_sample; 
    by sex; 
run; 

data to_sample; 
    set sashelp.class; 
    do _i = 1 to 1e5; 
    output; 
    end; 
run; 
proc sort data=to_Sample; 
    by sex; 
run; 

proc surveyselect data=to_sample n=strata_to_sample out=sample; 
    strata sex; 
run; 
Verwandte Themen