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 :

PROC TRANSPOSE : transposition de table [PROC]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Stagiaire
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut PROC TRANSPOSE : transposition de table
    Bonjour,

    J'ai une table de données (avril17) avec un grand nombres d'observations, mais seulement trois variable: DATE (Date de la transaction), NUM_PERS (identifiant du client) et AT_SICCODE (code marchand).

    Ex:

    DATE NUM_PERS AT_SICCODE
    01-04 00001 742
    01-04 00001 5123
    01-04 00002 6152
    02-04 00002 6152

    Je veux obtenir une nouvelle table (test1) avec la variable NUM_PERS et modifier la viable AT_SICCODE afin d'obtenir une varibale par code différent, qui indiquerait le nombre de fréquence pour la variable.

    Ex:

    NUM_PERS 742 5123 6152
    00001 1 1 .
    00002 . . 2

    Donc j'ai tenté une PROC TRANSPOSE, en ajoutant un PROC SUMMARY avant pour obtenir les fréquences et ne pas avoir de problèmes avec le id dans mon PROC TRANSPOSE. Voici mes codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    proc summary
      data=avril17 T;
      class num_pers;
      var at_siccode ;
      output out=avril17sum sum= ;
    run;    
     
    proc transpose data=work.avril17sum out=test1 (drop=_name_);                                    
       by num_pers;                                 
       var _freq_;                                  
       id  at_siccode;                                      
    run ;
    Mon problème c'est qu'en fonctionnant comme ça, lorsque un même code ets présent plus d'une fois pour un même client, il s'additionne donc au lieu d'avoir la variable 6152 avec une observation de 2 pour mon client, j'obtient une variable 12304 avec une observation de 2 pour mon client, ce qui ne me permet pas de faire plus d'analyse par la suite. Pouvez-vous m'aider à modifier mon code afin que cela n'arrive pas?

    Merci.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Bonjour,

    D'abord compter le nombre d'observation avec une proc sql; puis faire ton transpose.

    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
    data avril17;
    	infile cards;
    	input date :DATE9. NUM_PERS :$8. AT_SICCODE :8.;
    cards;
    01apr17 00001 742
    01apr17 00001 5123
    01apr17 00002 6152
    02apr17 00002 6152
    ;	
    run;
     
    proc sql;
    	create table avril17count as select distinct NUM_PERS, AT_SICCODE, count(*) as NB from avril17 group by 1,2; 
    quit;
     
    proc transpose data=avril17count out=test1 (drop=_name_);
    by num_pers;
    id at_siccode;
    var nb;
    run;

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Stagiaire
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup! C'était assez simple finalement, mais je n'y aurais pas pensé! Merci!

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

Discussions similaires

  1. Transposer une table avec proc transpose
    Par shudmeyer dans le forum SAS Base
    Réponses: 1
    Dernier message: 06/04/2012, 15h33
  2. proc TRANSPOSE avec 2 tables
    Par L0007 dans le forum Débutez
    Réponses: 9
    Dernier message: 24/03/2011, 09h31
  3. Question de transposition de table
    Par stefsas dans le forum SAS Base
    Réponses: 4
    Dernier message: 08/09/2008, 17h13
  4. Question Proc transpose
    Par didinet dans le forum SAS Base
    Réponses: 2
    Dernier message: 03/08/2008, 02h01
  5. Problème avec la proc Transpose
    Par ash_rmy dans le forum SAS Base
    Réponses: 3
    Dernier message: 07/04/2008, 11h16

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