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

  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;

  8. #8
    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
    Citation Envoyé par zazoubleu Voir le message
    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;
    et oui tu as besoin du format $FMOIS

    xav

  9. #9
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    Ton problème ne viendrait-il pas du fait que tu crées un format caractère alors que tu as une variable numérique?

    Recrée tes formats sans mettre le $

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PROC FORMAT library=anaavc;
      VALUE Fsexe  1='Homme'
                         2='Femme';
    run;
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PROC FORMAT library=anaavc;
      VALUE $Fsexe 1='Homme'
                          2='Femme';
    run;

  10. #10
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    bon j'ai essaye vos solutions voila ce que ca a donné
    dans tous les ordres possibles
    pour XAV2229 et lucaslu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    9784  proc print data=anaavc.avc_2;
    9785  format sexe $fsexe. modesortiepmsi $fmodeso. mois fmois.;
    ERREUR: The format FMOIS was not found or could not be loaded.
    9786  run;
     
    9982  proc print data=anaavc.avc_2;
    9983  format sexe $fsexe. modesortiepmsi $fmodeso. mois $fmois.;
    ERREUR: Vous êtes en train d'essayer d'utiliser le (la) alphanumérique format $FMOIS avec la numérique variable Mois.
    9984  run;
    ca ne marche pas
    si vous avez d'autres idees hesitez pas
    et encore merci d'avoir repondu

  11. #11
    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
    t'es pas très loin,

    il ne te reste qu'a créer le format numérique fmois.

    xav

  12. #12
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    mai ce que je ne comprend pas c'est qu'il est deja cree , je comprend plus rien la

  13. #13
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    Tes variables sexe, modesortiepmsi et mois sont bien numériques?

    Si oui, reprend le code de la proc format que je t'ai donné dans le 1er post et au moment de la proc print fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    proc print data=anaavc.avc_2;
    format sexe sexe. modesortiepmsi modedesortie. mois mois.;
    run;

  14. #14
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    j'ai ait ce que tu ma di ca donne ca
    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
    10157  PROC FORMAT library=anaavc;
    10158  VALUE Fsexe
    10159  1='Homme'
    10160  2='Femme';
    NOTE: Format FSEXE se trouve déjà dans la bibliothèque.
    NOTE: Le format FSEXE a été copié dans ANAAVC.FORMATS.
    10161  VALUE Fmodeso
    10162  6='Mutation'
    10163  7='Transfert'
    10164  8='Domicile'
    10165  9='Deces';
    NOTE: Format FMODESO se trouve déjà dans la bibliothèque.
    NOTE: Le format FMODESO a été copié dans ANAAVC.FORMATS.
    10166  VALUE Fmois
    10167  1='janvier'
    10168  2='fevrier'
    10169  3='mars'
    10170  4='avril'
    10171  5='mai'
    10172  6='juin'
    10173  7='juillet'
    10174  8='aout'
    10175  9='septembre'
    10176  10='octobre'
    10177  11='novembre'
    10178  12='decembre';
    NOTE: Format FMOIS se trouve déjà dans la bibliothèque.
    NOTE: Le format FMOIS a été copié dans ANAAVC.FORMATS.
    10179  run;
     
    NOTE: La procédure FORMAT a utilisé (Durée totale du processus) :
          temps réel                   0.01 secondes
          temps processeur   0.01 secondes
     
     
    10180  proc print DATA=anaavc.avc_2;
    10181  format sexe sexe. modesortiepmsi modedesortie. mois mois.;
    ERREUR: The format SEXE was not found or could not be loaded.
    10182  run;
    j 'ai meme essayer avec les F et j'obtiens ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    10378  proc print DATA=anaavc.avc_2;
    10379  format sexe fsexe. modesortiepmsi fmodedesortie. mois fmois.;
    ERREUR: The format FSEXE was not found or could not be loaded.
    10380  run;
    je vois pas d'ou ca vient

  15. #15
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    il faut peut être rajouter l'options fmtsearch pour lui dire où trouver le format!

    options fmtsearch=(anaavc work);

    Si il ne trouve pas le format dans la library anaavc, il regardera dans la librairie work. Si il ne trouve nulle part, tu auras ton message d'erreur.

  16. #16
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    est ce que ca ne viendrait pas du fait que
    a l'origine j'ai des variables numériques et que dans mon format je les veux les transformer en alphanumériques peut être que j'ai oublié un signe je sais pas
    en tout cas aucune de vos solutions ne marchent merci encore d 'avoir pris le temps de vouloir m'aider

  17. #17
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    As-tu toujours ton problème?

    Si oui, peut-être qu'avec un échantillon de tes données (si non confidentielles), cela pourrait aider à résoudre tes problèmes!

  18. #18
    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
    Je ne pense pas qu'il ai suivi ton indication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options fmtsearch=(anaavc work);
    xav

  19. #19
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    merci a tous pour vos réponses , c'est bon j'ai trouvé des que j' aurai le temps je posterai la réponse

+ 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