Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Somme de X lignes


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Somme de X lignes
    Bonjour,

    je cherche à somme les X lignes suivantes à chaque ligne (la ligne 6 étant la dernière ligne du fichier) => mon fichier réel fait quelques 200 000 lignes

    Dans l'exemple ci dessous je souhaite récupérer dans une nouvelle colonne la valeur de la somme de la ligne + les 2 lignes qui suivent (somme de 3 lignes)

    Exemple :
    N° Ligne VALEUR SOMME ATTENDUE Commentaire
    1 63 777 100 185 125 692 somme de la ligne 1 à 3
    2 63 457 056 185 984 988 somme de la ligne 2 à 4
    3 57 891 536 188 395 288 somme de la ligne 3 à 5
    4 64 636 396 195 684 684 somme de la ligne 4 à 6
    5 65 867 356 131 048 288 somme de la ligne 5 à 6
    6 65 180 932 65 180 932 somme de la ligne 6 à 6

    Je n'arrive pas à trouver la solution sur SAS, l'idéal étant de le faire dans une étape DATA....

    Merci par avance pour votre aide !

  2. #2
    Nouveau membre du Club
    somme x lignes
    ci dessous la réponse

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    data null;
    set table_source ;
    call symput(compress('val'||_N_), compress(VALEUR));
    run;
     
    data tab_cible;
    set table_source;
    SOMME_ATTENDUE=symget(cats('val',_N_)) + coalesce(symget(cats('val',_N_+1)),0) + coalesce(symget(cats('val',_N_+2)),0) ;
    run;


    Cordialement.

###raw>template_hook.ano_emploi###