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 :

Mettre un format : PROC FORMAT


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut Mettre un format : PROC FORMAT
    et oui encore moi heureusement que ce site existe
    je dois créer des formats pour certaines variables
    j'ai donc essayer de créer le format ça me donne ça

    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
    22
    23
    PROC FORMAT;
    VALUE $sexe
    1='Homme'
    2='Femme';
    VALUE $modedesortie
    6='Mutation'
    7='Transfert'
    8='Domicile'
    9='Deces';
    VALUE $mois
    1='janvier'
    2='fevrier'
    3='mars'
    4='avril'
    5='mai'
    6='juin'
    7='juillet'
    8='aout'
    9='septembre'
    10='octobre'
    11='novembre'
    12='decembre';
    run;
    puis j ai voulu l'appliquer avec cette procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    proc print data=anaavc.avc_2;
    format sexe $sexe. modesortiepmsi $modedesortie. mois $mois.;
    run;
    cependant en regardant ma table mon format ne s'applique pas
    si jamais vous savez pourquoi hésitez pas a me le dire ou si j'ai fait une fausse manip
    merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    Bonjour,

    En fait, lorsque tu fais un proc print tu ne fais qu'imprimer ta table dans la partie output mais tu ne modifies en rien ta table. Pour modifier ta table tu dois la relire et appliquer le format à ta variable.

    Voici un petit exemple rapide!
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    /*-----------------------------------------------------|
    | Création des formats                                               |
    |-----------------------------------------------------*/
    PROC FORMAT library=work;;
    VALUE sexe
        1='Homme'
        2='Femme';
    VALUE modedesortie
        6='Mutation'
        7='Transfert'
        8='Domicile'
        9='Deces';
    VALUE mois
        1='janvier'
        2='fevrier'
        3='mars'
        4='avril'
        5='mai'
        6='juin'
        7='juillet'
        8='aout'
        9='septembre'
        10='octobre'
        11='novembre'
        12='decembre';
    run;
     
    /*-----------------------------------------------------|
    | Création de ma table                                               |
    |-----------------------------------------------------*/
    data a;
      sexe=1;
      mode_sortie=6;
      mois=1;
    output;
      sexe=2;
      mode_sortie=7;
      mois=5;
    output;
    run;
     
    /*-----------------------------------------------------|
    | Application des formats                                            |
    |-----------------------------------------------------*/
    data b (drop=sexe mode_sortie mois); 
      set a;
      length sexe_ $10. mode_sortie_ $10. mois_ $12.;
      sexe_=put(sexe, sexe.);
      mode_sortie_=put(mode_sortie, modedesortie.);
      mois_=put(mois, mois.);
      rename sexe_=sexe mode_sortie_=mode_sortie mois_=mois;
    run;

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    merci de ta réponse
    mais j'ai un souci j'ai déjà une table de créée avec d'autres variables et je voulais juste appliquer un format a certaines variables qui sont déjà présentes dans cette table, je ne sais pas si mon explication est compréhensive
    si jamais tu as la solution
    merci d'avance

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Par défaut
    Salut,

    en regardant ma table mon format ne s'applique pas
    tu la regardes où?
    ton PROC PRINT devrait afficher ta table avec les valeurs formatées, non?

    xav

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    ben justement mes valeurs ne se modifient pas elles restent identiques du coup je sais pas quoi faire

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    voila ce que mon journal dit :::si ca peut aider

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    9167  PROC FORMAT library=anaavc;
    9168  VALUE $Fsexe
    9169  1='Homme'
    9170  2='Femme';
    NOTE: Format $FSEXE se trouve déjà dans la bibliothèque.
    NOTE: Le format $FSEXE a été copié dans ANAAVC.FORMATS.
    9171  VALUE $Fmodeso
    9172  6='Mutation'
    9173  7='Transfert'
    9174  8='Domicile'
    9175  9='Deces';
    NOTE: Format $FMODESO se trouve déjà dans la bibliothèque.
    NOTE: Le format $FMODESO a été copié dans ANAAVC.FORMATS.
    9176  VALUE $Fmois
    9177  1='janvier'
    9178  2='fevrier'
    9179  3='mars'
    9180  4='avril'
    9181  5='mai'
    9182  6='juin'
    9183  7='juillet'
    9184  8='aout'
    9185  9='septembre'
    9186  10='octobre'
    9187  11='novembre'
    9188  12='decembre';
    NOTE: Format $FMOIS se trouve déjà dans la bibliothèque.
    NOTE: Le format $FMOIS a été copié dans ANAAVC.FORMATS.
    9189  run;
     
    NOTE: La procédure FORMAT a utilisé (Durée totale du processus) :
          temps réel                   0.00 secondes
          temps processeur   0.00 secondes
     
     
    9190  proc print data=anaavc.avc_2;
    9191  format sexe $fsexe. modesortiepmsi $fmodeso. mois $mois.;
    ERREUR: The format $MOIS was not found or could not be loaded.
    9192  run;

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Par défaut
    Essaye ça c'est ce que je fait moi dans tout mes prg.
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    PROC FORMAT  ;
    VALUE sexe
        1='Homme'
        2='Femme';
    VALUE modedesortie
        6='Mutation'
        7='Transfert'
        8='Domicile'
        9='Deces';
    VALUE mois
        1='janvier'
        2='fevrier'
        3='mars'
        4='avril'
        5='mai'
        6='juin'
        7='juillet'
        8='aout'
        9='septembre'
        10='octobre'
        11='novembre'
        12='decembre';
    run;
     
     
     
     
    data New_table;
    set  Ta_table ;
    sexe               =put(champ_SEXE_TA_TABLE,sexe.);
    modedesortie   =put(champ_modedesortie_TA_TABLE,modedesortie.);
    mois               =put(champ_mois_TA_TABLE,mois.);
    run;

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

Discussions similaires

  1. la procédure proc format et son affectation?
    Par r_dani dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 12/11/2008, 12h16
  2. taille pour mettre une feuille en format PDF
    Par ptitepo dans le forum Excel
    Réponses: 2
    Dernier message: 27/05/2008, 14h43
  3. mettre la date au format 2007-12-19T16:22:21+01:00
    Par Smix007 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 18/03/2008, 18h01
  4. mettre une date en format dd/mm/year en paramètre d'une fonction
    Par friedamichelle dans le forum Général Java
    Réponses: 2
    Dernier message: 03/03/2008, 18h09
  5. [C#] Mettre une image en format puissance de 2
    Par ashhorn dans le forum DirectX
    Réponses: 3
    Dernier message: 27/03/2006, 19h05

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