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 :

Décalage d'une table SAS dans un set


Sujet :

SAS Base

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 67
    Points : 56
    Points
    56
    Par défaut Décalage d'une table SAS dans un set
    Bonjour,

    J'ai bien entendu regardé le topic ci-dessous traitant plus ou moins le sujet, ne trouvant pas la solution adaptée, je m'en résous à poster.

    Supposons que je bénéficie de deux tables SAS :
    table1 : "var 1 var 2 ... var n-1" et une variable var n ajoutée par l'import
    table2 : "var n var 1 var 2 ... var n-1"

    (Bon en vrai il y a quelques variables qui diffèrent des deux tables, environ 15%. Mais j'ai le même problème lorsque je fais un keep sur les variables communes des deux tables qui m'intéressent, c'est pourquoi je vous propose cette modélisation.)

    J'aimerais faire un set sur ces deux tables. Le problème, c'est que lorsque je le fais, table2 prend comme ordre de variables "var 1 var 2 ... var n", mais l'ordre réel des données, correspond bien à l'ordre initial, soit "var n var 1 var 2 ... var n-1".

    J'ai bien entendu fait des retain dans tous les sens pour y remédier, mais rien n'y fait, j'ai toujours ce décalage dans la "partie table2" de la table obtenue, je n'ai aucun problème au niveau de table1.

    Je vous remercie d'avance et vous souhaite une agréable journée.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 99
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    Si j'ai bien compris l'ordre des variables qui te convient est celui de table2.
    La solution me paraît simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    data resultat; 
    set table2 table1;
    run;
    La table resultat suivra l'ordre des variables dans table2.

    Et puisque je ne vois pas pourquoi un retain n'aurait pas marché ; Es-tu sûr de placer le retain correctement?
    "Statistics is the grammar of science" - K. Pearson

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 67
    Points : 56
    Points
    56
    Par défaut
    Je te remercie d'avoir répondu. Néanmoins, j'avais testé cette solution et j'avais toujours le décalage.

    Pour être un peu plus clair, ce décalage n'est présent que sur une table, c'est-à-dire que j'ai bien l'ordre des variables que je souhaite, mais table1 ne respecte pas cet ordre de variables, concernant le décalage. Ainsi var 1 va avoir droit aux valeurs de var n, var 2 va avoir droit aux valeurs de var 1, et ainsi de suite.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 99
    Points : 202
    Points
    202
    Par défaut
    Alors il faut te tourner vers plus compétent, chez moi ça marche parfaitement.

    EDIT : N'as tu pas un problème au niveau de tes noms de variables?
    Lorsque tu empiles des tables différentes dans un SET, SAS se base sur les noms de variables communs au deux tables.
    Ce que tu décris ne semble pouvoir survenir que s'il existe des permutations de noms de variables d'une table à l'autre...
    "Statistics is the grammar of science" - K. Pearson

  5. #5
    Membre éprouvé
    Avatar de Haache
    Homme Profil pro
    Doctorant & Ingénieur Statiaticien Economiste
    Inscrit en
    Mars 2014
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations professionnelles :
    Activité : Doctorant & Ingénieur Statiaticien Economiste

    Informations forums :
    Inscription : Mars 2014
    Messages : 349
    Points : 1 009
    Points
    1 009
    Billets dans le blog
    8
    Par défaut
    Bonjour.

    Pour l'ordre des variables dans une table je vous propose ce code;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /*J'ai cette table*/                                                                                                                    data test;                                                                                                                              
    input id annee cotisation prest;                                                                                                        
    cards;                                                                                                                                  
    1 2013 100 100                                                                                                                          
    1 2014 110 120                                                                                                                          
    1 2015 130 110                                                                                                                          
    2 2014 110 120                                                                                                                          
    2 2015 130 110                                                                                                                          
    3 2015 150 90                                                                                                                           
    ;run;                                                                                                                                   
    /*Je veux changer l'ordre des variables en prest cotisation id annee*/                                                                  
    proc sql;                                                                                                                               
    create table resultat as select prest, cotisation, id, annee from test;                                                                 
    run;
    Inspirez vous de ce code pour résoudre votre problème
    • Faites un tour sur mon siteweb professionnel www.aristideelysee.16mb.com Des codes dans la section "media et code" pouvant vous aider que vous pouvez aussi partager sur les réseaux sociaux.
    • Visiter mon blog en cliquant ici! Des techniques, astuces et macros pour l'analyse quantitative.

Discussions similaires

  1. Ajouter des observations d'une table SAS dans une table ACCESS
    Par michail_arkov dans le forum Outils BI
    Réponses: 4
    Dernier message: 12/11/2013, 16h25
  2. Réponses: 3
    Dernier message: 30/05/2012, 09h24
  3. Réponses: 7
    Dernier message: 29/04/2011, 13h20
  4. Proc export d'une table SAS dans un répertoire
    Par r_dani dans le forum SAS Base
    Réponses: 1
    Dernier message: 04/11/2008, 12h34
  5. Obtenir la liste des doublons dans une table SAS
    Par marie mouse dans le forum SAS Base
    Réponses: 2
    Dernier message: 05/12/2007, 15h33

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