Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2007, 14h42   #1
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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.
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h48   #2
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
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 :
1
2
 
num=input(Prestations,9.);
A+
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 08h53   #3
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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.
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h28   #4
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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 :
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
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h31   #5
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 10h49   #6
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
Bonjour,

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

Code :
1
2
 
paie2=compress(paie);
A+
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 10h57   #7
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 11h26   #8
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
Peux-tu mettre en piece jointe une partie de ta base avec quelques cas qui posent probleme pour que je fasse des tests ?

A+
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 15h56   #9
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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 :
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
Type de fichier : xls toto.xls (17,0 Ko, 1 affichages)
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 17h20   #10
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
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+
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 17h28   #11
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
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++
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 17h53   #12
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
J'ai trouvé une solution "tirée par les cheveux".

Tu lances d'abord le programme suivant

Code :
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 :
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+
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 14h44   #13
Invité régulier
 
Inscription : juin 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 63
Points : 7
Points : 7
Par défaut probleme format

salut,


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


Merci
a++
mmanta1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h54.


 
 
 
 
Partenaires

Hébergement Web