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

Macro Discussion :

Transpose avec itération automatique


Sujet :

Macro

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut Transpose avec itération automatique
    Bonjour,

    Je ne sais pas si le titre est juste. mais étant débutant sur sas je cherche a automatiser un transpose sur une table et une concaténation par la suite.

    je m'explique.
    Lors du transpose, SAS crée un nombre de colonnes en fonction des variables à transposer.

    L'idée c'est d'automatiser le nombre de variable au cas ou, d'un mois a l'autre , cela change.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    PROC TRANSPOSE DATA=WORK.SORTTempTableSorted
    	OUT=WORK.TRNSTransposedAPPORTEUR4(LABEL="WORK.APPORTEUR4 transposé")
    	PREFIX=Colonne_&i
    	NAME=Source
    	LABEL='Libellé'n
    ;
    	VAR LIBSTD;
     
    RUN; QUIT;
    C'est donc de mettre une macro_variable dans le préfix pour ensuite concaténer l'ensemble des variables transposées.

    Catx('-', Var_1,var_2..)

    Merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 624
    Points : 3 402
    Points
    3 402
    Par défaut
    Je ne sais pas si j'ai bien compris. Je te donne un exemple qui te permet de concaténer des variables avec le même préfixe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    data test;
    input var1-var3 ;
    cards;
    1 2 3
    ;
    run;
     
    data test1;
    set test;
    concat=catx('-', of var:);
    drop var: ;
    run;
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Bonjour Sam,

    Merci pour ta réponse.

    En fait, dans le cas fourni, tu sais que tu as 3 variables.
    Dans mon cas, je ne sais pas car ces variables seront le résultat d'un transpose.

    exemple :

    indA Santé
    IndA Prevoyance
    IndB Santé

    Dans ce cas, si je transpose

    J'aurai :

    IndA Santé Prévoyance (2 variables seront crée Risque_1 Risque_2)
    IndB Santé

    Aprés je concatène catx('-', risque_1, risque_2)


    Dans le cas ou je trouve le nb de doublons ayant plusieurs risques, variable appelé "max" ca me dira combien de risque je peux avoir.
    Comment je peux faire pour automatiser ca car tous les mois le nombres de risques par individu peut changer ?

  4. #4
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 624
    Points : 3 402
    Points
    3 402
    Par défaut
    Avy,

    L'exemple que je t'ai donné te permet de concaténer des variables de même préfixe sans connaitre leurs nombre. Les deux points jouent le rôle d'un joker et ce code est valable dans le cas où t'as une seule ou plusieurs variables.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    data test;
    input var1-var3 ;
    cards;
    1 2 3
    ;
    run;
     
    data test1;
    set test;
    concat=catx('-', of var:);
    drop var: ;
    run;
    cas de deux variables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    data test;
    input var1 var2 ;
    cards;
    1 2
    ;
    run;
    data test1;
    set test;
    concat=catx('-', of var:);
    drop var: ;
    run;
    cas d'une seule variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    data test;
    input var1;
    cards;
    1
    ;
    run;
    data test1;
    set test;
    concat=catx('-', of var:);
    drop var: ;
    run;
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Merci sam!
    Ca marche nickel.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/05/2006, 03h05
  2. Réponses: 7
    Dernier message: 10/11/2005, 14h12
  3. Cocher une case avec affichage automatique
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 13h36
  4. Menu déroulant avec préselection automatique
    Par nesbla dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/06/2005, 12h11
  5. [MFC] zone de texte avec "wrap" automatique
    Par bigquick dans le forum MFC
    Réponses: 3
    Dernier message: 21/04/2005, 16h26

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