2017-02-13 9 views
-1

Ich habe eine Tabelle mit verschiedenen Noten für R60, R90, R120, R150, R180 und wie kann ich eine Tabelle mit einem gewichteten Rang basierend auf diesen fünf Variablen und CODE_RAC wo NORM_PCT hat 40% Gewichtung, RB_PCT hat 30% Gewichtung und RB_PCT hat 40% Gewichtung] [1]Gewichteten Rang in SAS

Können Sie mir dabei in der SAS Enterprise Edition helfen? Sie finden die aus dem Datensatz angebracht Probe

enter image description here

+0

1. Bitte beachten Sie posten Sie Ihre Beispieldaten als Text in Ihrer Frage. 2. Welche Ausgabe erwarten Sie für die Beispieldaten? 3. Was hast du bisher versucht? – user667489

Antwort

0

Dies ist nicht mit Enterprise Edition getan, aber ich hoffe, es würde dienen.

Es sollte ein Proc-Rank-Programm geben, das das Ranking für Sie erledigt. Entweder das oder Sie können einfach die Daten nach berechneter 'Ranking-Variable sortieren (rank_calc im Beispiel). Ich bin mir ziemlich sicher, dass Sie dies in einem Schritt tun könnten, aber vielleicht ist dies informativer.

data Begin; 
    length code_rac $10 norm_R60 3 rb_R60 3 Reso_R60 3; 
    input code_rac norm_R60 rb_R60 Reso_R60; 
    datalines; 
    first 10 6 2 
    second 0 0 10 
    third 8 6 4 
    forth 0 10 7 
    fifth 0 0 8 
    ; 
ruN; 

data begin; /*Calculate weighted value for ranking*/ 
    set begin; 
    rank_calc= norm_R60*0.4 + rb_R60*0.3 + Reso_R60*0.4; 
run; 

proc rank data=begin out=sorted_by_rank; 
    var rank_calc; 
    ranks my_rank; 
run; 

Für mehr auf Ranking http://www.lexjansen.com/nesug/nesug09/ap/AP01.pdf

+0

ja, ich habe das Gleiche gemacht, DATA TAB_APRIL_CL1; SET TAB_APRIL_CL; POS_PCT = SUMME (TOT_POS_R60/TOTAL_POS); Format POS_PCT percent8.2; NEW_SCORE = SUMME (NORM_PCT_R60_SCORE * .4, RB_PCT_R60_SCORE * .3, RESO_PCT_R60_SCORE * .3); NEW_SCORE = POS_PCT * NEW_SCORE; NEW_SCORE = Rund (NEW_SCORE); RUN; Vielen Dank! –