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 :

comment calculer le cumul via sas


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : juin 2019
    Messages : 24
    Points : 23
    Points
    23
    Par défaut comment calculer le cumul via sas
    Bonjour cher réseau,
    j'ai une base de données composées de variables qualitatives ID,Lact et Jour et une variable numérique milk, voici sa structure.
    Le Id est l'identifiant, chaque id peut avoir un lact unique ou plusieurs, ce qui fait que mes individus sont définit par l'association de id/lact.
    pour chaque ID/Lact la variable Jour varie de 1 à 305.
    Chaque jour correspond à une observation de milk donnée.
    Je cherche à créer une nouvelle colonne(variable) nommée cumul_milk.
    pour chaque ID/Lact: le cumul_milk (jour1) sera égale à milk(jour1), pour le jour 2 le cumul_milk sera la somme de milk (jour 1)et milk (jour 2)et ainsi de suite jusqu'au le jour 305 qui sera égale à la somme of milk(jour1)-miilk(305).
    Est ce que c'est possible de réaliser cela avec sas?
    Dans l'attente de vos retours.
    Bien cordialement.

  2. #2
    Membre éprouvé
    Inscrit en
    novembre 2009
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 531
    Points : 1 040
    Points
    1 040
    Par défaut array
    Bonjour,

    Une proposition en utilisant les array (à partir de votre exemple donné dans cette discussion) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    data test;
      input ID Lact milk1 milk2 milk3 milk4 milk5;
      cards;
     1 1  . 20 26 14 31
     2 1 18 20 32 24 30
     3 1 17 20  . 24 30
     4 1 20 20 22 24 30
     5 2 31  . 12 14 30
     6 2 19 20 22 24 33
     7 2 14 20  .  . 30
     8 2 17 20 32 24 30
     9 3  . 20 22 24 30
    10 3 18 20 12 24 32
    11 3 19 20 22 24 30
    12 3  . 20 22 24 30
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data test(drop=i);
      set test;
      array milk[5] milk1-milk5;
      array milk_sum[5] milk_sum1-milk_sum5;
      milk_sum1=milk1;
      do i=2 to 5;
        milk_sum[i]=sum(milk_sum[i-1],milk[i]);
      end;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                                                                milk_    milk_    milk_    milk_    milk_
     ID    Lact    milk1    milk2    milk3    milk4    milk5     sum1     sum2     sum3     sum4     sum5
      1      1        .       20       26       14       31        .       20       46       60       91
      2      1       18       20       32       24       30       18       38       70       94      124
      3      1       17       20        .       24       30       17       37       37       61       91
      4      1       20       20       22       24       30       20       40       62       86      116
      5      2       31        .       12       14       30       31       31       43       57       87
      6      2       19       20       22       24       33       19       39       61       85      118
      7      2       14       20        .        .       30       14       34       34       34       64
      8      2       17       20       32       24       30       17       37       69       93      123
      9      3        .       20       22       24       30        .       20       42       66       96
     10      3       18       20       12       24       32       18       38       50       74      106
     11      3       19       20       22       24       30       19       39       61       85      115
     12      3        .       20       22       24       30        .       20       42       66       96
    À voir comment vous voulez traiter les données manquantes.

    Cordialement,

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : juin 2019
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    Bonjour,
    Merci infiniment pour votre aide,
    ça marche très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment calculer une moyenne via VBA et Access
    Par AimeDija dans le forum VBA Access
    Réponses: 9
    Dernier message: 22/06/2018, 10h57
  2. SAS comment calculer les effectifs en sous groupe?
    Par inatha dans le forum SAS STAT
    Réponses: 0
    Dernier message: 15/04/2011, 21h38
  3. Comment calculer la taille d'une base de données ?
    Par say dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 01/04/2011, 17h48
  4. Réponses: 2
    Dernier message: 05/01/2005, 15h36
  5. [DBGrid avec Cumul]Comment réaliser un cumul dans un DBGrid
    Par Eric SAULNIER dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/07/2004, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo