2017-02-13 3 views
-1

J'ai un tableau avec des scores différents pour R60, R90, R120, R150, R180 et comment puis-je faire un tableau avec un rangé basé sur ces cinq variables, et CODE_RAC où NORM_PCT a 40% poids, RB_PCT a 30% de poids et RB_PCT a 40% de poids] [1]Classement pondéré dans SAS

Pouvez-vous m'aider avec ceci dans SAS Enterprise Edition? S'il vous plaît trouver ci-joint l'échantillon de l'ensemble de données

enter image description here

+0

1. S'il vous plaît poster vos données d'échantillons sous forme de texte dans votre question. 2. Quel résultat attendez-vous pour les données d'échantillon? 3. Qu'avez-vous essayé jusqu'à présent? – user667489

Répondre

0

Cela ne se fait avec l'édition d'entreprise, mais je l'espère servirait.

Il devrait y avoir un programme proc rank, qui fait le classement pour vous. Soit cela ou vous pouvez simplement trier les données en calculant la variable de classement (rank_calc dans l'exemple). Je suis certain que vous pourriez le faire en une seule étape, mais que cela soit plus informatif.

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; 

Pour en savoir plus sur le classement voir http://www.lexjansen.com/nesug/nesug09/ap/AP01.pdf

+0

oui j'ai fait la même chose, DATA TAB_APRIL_CL1; SET TAB_APRIL_CL; POS_PCT = SUM (TOT_POS_R60/TOTAL_POS); format POS_PCT percent8.2; NEW_SCORE = SOMME (NORM_PCT_R60_SCORE * .4, RB_PCT_R60_SCORE * .3, RESO_PCT_R60_SCORE * .3); NEW_SCORE = POS_PCT * NEW_SCORE; NEW_SCORE = Rond (NEW_SCORE); RUN; Merci quand même! –