IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 faire l'équivalent du sommeprod d'Excel dans SAS


Sujet :

SAS Base

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'études actuarielles
    Inscrit en
    Novembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Chargé d'études actuarielles
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment faire l'équivalent du sommeprod d'Excel dans SAS
    Bonjour,

    Je cherche à reproduire dans SAS ce que je fais dans Excel.

    J'aimerais ajouter une nouvelle colonne. Dans Excel, j'utilise la fonction sommeprod.

    Voici mon fichier Excel:
    Fichier Excel pour pb SAS.xlsx

    Voici également le code SAS qui génère la table de base.

    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
    18
    19
    20
    21
    data test2;
    length marche $ 20;
    input marche $ produit $;
    datalines;
    ARMATEURS A
    ARMATEURS A
    ARMATEURS B
    CARGO C
    PLAISANCE D
    PLAISANCE A
    PLAISANCE D
    ARMATEURS E
    ARMATEURS A
    CARGO C
    CARGO F
    CARGO F
    CARGO F
    PLAISANCE G
    PLAISANCE F
    ;
    run;

    J'espère que quelqu'un pourra m'aider, je ne sais pas comment faire.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Je te propose cette solution qui devrait répondre à ta requête. C'est l'équivalent de la fonction sommeprod dans Excel.

    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
    18
    19
    proc sort data=Ta_base ; by produit marche ; run ;
     
    data Finale (drop=i j N cnt) ;	
    array Prods{100} $ _temporary_ ;
     
    if _n_ = 1 then do i=1 to fin  ;  
                set Ta_base nobs=fin ;
    			by produit marche ;  
    if first.produit then  cnt=0  ;  
    if first.marche  then  cnt+1  ;  	
    if last.produit and cnt > 1 then do ;   Prods(n)=produit ; end ;   
    			     end ; 	  
     
    set Ta_base ;	
    multi_marche='non' ;
    do j=1 to N ;
    if produit= Prods(j)then multi_marche='oui' ;
    end ;
    run ;
    Bon Courage
    Ward

Discussions similaires

  1. [AC-2003] Quel est l'équivalent de SOMMEPROD de Excel dans ACCESS ?
    Par Kilibou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/07/2013, 09h40
  2. Réponses: 1
    Dernier message: 18/07/2009, 11h37
  3. Réponses: 5
    Dernier message: 08/07/2009, 18h25
  4. Comment faire un équivalent à z-index que pour IE6
    Par whitespirit dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 14/05/2008, 09h15
  5. Comment faire l'équivalent de #define, #ifdef... en HTML !
    Par Atomikx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 16/05/2005, 10h40

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