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 :

Problème de format


Sujet :

SAS Base

  1. #1
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut Problème de format
    Bonjour,

    J'ai encore une fois besoin de votre aide.

    Pour un projet, on m'a confié un tableau sas contenant pluisieurs variables.

    Mais il y a une variable Prestations qui est de format &9. et je voudrais la convertir en numérique pour la manipuler par la suite (proc format.....)

    Je n'arrive pas à faire cette modification.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    Ce ne serait pas $9. ton format et non &9. ?

    Utilise la fonction input pour mettre un format alphanumérique en un format numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    num=input(Prestations,9.);
    A+

  3. #3
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut merci
    En fait j'ai compris mon problème, pour cette variable, il ya des "," à la place des points.

    Mais je ne sais pas comment faire pour remplacer les virgules par des points.


    Merci d'avance pour votre aide.

  4. #4
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut Problème format
    Bonjour,

    J'ai compris comment faire pour remplacer les ',' par les points et j'ai même changer le format de la varaible en numérique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    paie=translate(prestations,'.',',');
    paie1=input(paie,Best12.);
    J'ai un autre probleme maintenant certaines valeurs n'apparaissent plus dans cette nouvelles variables.
    Toutes les valeurs supérieurs à 1000 ont été supprimé et remplacé par des "."

    Voici un exemple des valeurs qui disparaissent de mon fichiers.

    1*139.96

    Je pense que c'est à cause de l'espace entre le millier et la centaine.

    mais je ne sais pas comment supprimer l'espace.

    Merci

  5. #5
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut probleme
    J'ai constaté que dans le message que je viens d'éditer l'espace de mon exemple est remplacé par "*" mais il ya bien un espace entre les milliers et les centaines.

    Voila

    merci d'avance de votre aide

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    Pour supprimer les blancs, tu peux utiliser la fonction compress.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    paie2=compress(paie);
    A+

  7. #7
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut probleme
    Merci pour votre réponse.

    J'ai essayé avec Compress mais cela ne marche pas il ne supprime pas les "espaces".


    Je bloque completement sur ce truc et cela m'empeche donc de continuer mon analyse.

    Merci

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Peux-tu mettre en piece jointe une partie de ta base avec quelques cas qui posent probleme pour que je fasse des tests ?

    A+

  9. #9
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut probleme
    Désolée ne pas avoir répondu plus tôt.

    Voici un bout de ma table.

    Et ci dessous le bout de programme correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data toto;
    set total;
    paie=translate(prestations,'.',',');
    paie1=input(paie,Best12.);
    run;
    Merci d'avance pour votre aide.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Le problème de ton fichier est que l'espace dans tes nombres sont des blancs insécables. Je ne sais pas à quelle "valeur" ils correspondent dans SAS.

    Le plus simple, si ta base n'a pas trop de lignes, est de la mettre en Excel et de faire la modification dans Excel.
    Pour cela, pour ta colonne contenant la variable Prestations, tu fais "Edition\Remplacer", dans Rechercher tu tapes Alt+0160 (normalement un blanc apparait) et dans Remplacer par tu ne mets rien.

    J'espère que cela peut t'aider.

    A+

  11. #11
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut probleme
    Merci pour ta réponse (si cela te gène pas que je te tutoies)

    J'ai essayé toutes les manières possibles avec SAS mais aucune fonction comme "compress" ou "compbl" ne permet de supprimer ce "blanc".
    Le problème c'est que mon fichier contient plus de 140 000 lignes, je vais encore chercher mais je penser mais au pire dès cas j'utiliserais Excel.


    Merci pour ton aide.

    a++

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    J'ai trouvé une solution "tirée par les cheveux".

    Tu lances d'abord le programme suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data toto ;
    set total ;
    temp=substr(prestations,2,1);
    run;
    Tu ouvres ta base SAS et tu cliques dans une des cases vides de la variable temp (celle correspondant à une valeur > 1 000). Tu copies cette valeur (Ctrl+c).

    Tu colles cette valeur (Ctrl+v) dans le programme suivant, sur la ligne paie1 entre les 2 apostrophes de la fin du translate.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    data toto2 ;
    set toto;
    paie1=compress(translate(prestations,'',' '));
    paie2=translate(paie1,'.',',');
    paie3=paie2/1;
    run;
    A priori ca marche.
    Si tu n'y arrives pas, j'essaierai de mieux expliquer.

    A+

  13. #13
    En attente de confirmation mail
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Points : 38
    Points
    38
    Par défaut probleme format
    salut,


    Je te remercie c'est impeccable!! ca marche.


    Merci
    a++

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

Discussions similaires

  1. Problème de format de pixel
    Par charliejo dans le forum OpenGL
    Réponses: 7
    Dernier message: 21/03/2005, 11h45
  2. Problème de format de currency
    Par gandf dans le forum C++Builder
    Réponses: 5
    Dernier message: 31/01/2005, 13h36
  3. Réponses: 14
    Dernier message: 06/08/2004, 15h12
  4. [CR8] Problème de Format d'affichage
    Par khabch dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 19/02/2004, 14h10
  5. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19

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