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 :

Changer tous les noms des variables


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Changer tous les noms des variables
    Bonjour,
    J' ai la table suivante: T (juste une partie parce que l'originale est trop longue)
    LocCde janv.-05 févr.-05 mars-05 avr.-05 .......
    Loc11Cde111018 420 420 420 420
    Loc21Cde111018 420 420 420 420
    Loc23Cde111018 420 420 420 420
    Loc31Cde111018 420 420 420 420
    Loc33Cde111018 420 420 420 420
    ....

    La proc sort m'a donné: T0 (juste une partie)


    LocCde F9 F10 F11 F12 F13 .......
    Loc11Cde111018 420 420 420 420 420
    Loc11Cde111048 735 735 735 735 735
    Loc11Cde111058 760 760 760 760 760
    Loc11Cde111088 380 380 380 380 380
    ....
    Remarquer que jan05-->oct10 est transformé en F9-->F72

    la proc transpose m'a donné T1: (juste une partie)


    _NAME_ _LABEL_ COL1 COL2 COL3 COL4 ...................
    F9 F9 420 735 760 380 205 650 725
    F10 F10 420 735 760 380 205 650 750
    F11 F11 420 735 760 380 205 650 750
    F12 F12 420 735 760 380 205 650 750
    ..............

    Donc comment ferais-je pour garder la variable date en premiere colonne et garder les noms des variables chacune dans une colonne????
    (Trop longue question !!!!) j'espere que vous compreniez!!!

  2. #2
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    C'est des points et des tirets que SAS n'aime pas. Tu peux remplacer .- par un _
    (controle F, remplacer .- par _) et lire ton fichier avec SAS par la suite.
    Le but étant de passer de janv.-05 par janv_05.
    Tu as combien d'années au total?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Au total j'ai 6 années: de jan2005 à oct2010, et en ce qui concerne le format de la date: ( jan.-05 ) est en fait (01/01/2005) çàd quand on vient de chercher les (.-) on les trouve pas (format date dans excel ).

    Et en plus j'ai changé le format de la date à 01/10/2005 jusqu'à 01/10/2010, mais le problème persiste.

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Tu peux posté un échantillon de ton fichier?
    10 lignes suffit.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Voilà un échantillon!!
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls T.xls (29,0 Ko, 83 affichages)

  6. #6
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    à mon avis, tu n'a pas le choix que de traiter ton fichier à la mano avant de l'importer sous SAS:
    1- Tu mets les colonnes au format JAN-05
    2- Tu copies/colles dans un bloc note(txt)
    3- Tu remplaces les "-" par "_"
    4- Re copier/coller de txt vers Excel

    Ci-joint le résultat des étapes ci-dessus
    Fichiers attachés Fichiers attachés

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Voilà tu l'a déjà fait !!! Il me reste que copier coller du fichier joint !!!!
    Merci

  8. #8
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Avec l'option VALIDVARNAME=ANY on évite le renommage des variables à l'import par SAS.
    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
    OPTION VALIDVARNAME=ANY ;
    PROC IMPORT DATAFILE="c:\temp\t.xls" DBMS=EXCEL OUT=work.import REPLACE ;
      SHEET="prmoinov10" ;
    RUN ;
    PROC TRANSPOSE DATA=work.import OUT=work.ok (RENAME=(col1=valeur)) ;
      BY LocCde NOTSORTED ;
    RUN ;
    OPTION VALIDVARNAME=V7 ;
    DATA work.ok (DROP=_name_) ;
      /* pour s'assurer que ces colonnes arrivent en 1er dans la table */
      FORMAT locCde ;
      ATTRIB date LENGTH=4 FORMAT=DDMMYY10. ;
      SET work.ok (DROP=_label_) ;
      date = INPUT(_name_, DDMMYY8.) ;
    RUN ;

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Merci olivier.decourt c'est bien de savoir de plus.

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

Discussions similaires

  1. récupérer les noms des variables
    Par socrate88 dans le forum C
    Réponses: 4
    Dernier message: 03/06/2011, 10h16
  2. Choisir les noms des variables avec SAVE et LOAD
    Par Bktero dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/08/2009, 10h00
  3. Réponses: 7
    Dernier message: 19/05/2009, 16h57
  4. Réponses: 1
    Dernier message: 24/02/2007, 12h53
  5. [DB2]Obtenir tous les noms des champs d'une table
    Par ptr83 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/11/2006, 09h31

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