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 10/01/2011, 14h17   #1
Invité régulier
 
Inscription : avril 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 37
Points : 8
Points : 8
Par défaut Ajouter des zéros dans des colonnes numériques

Bonjour,


Mes données sont de la forme suivante :

Code :
1
2
3
4
5
6
A       B        C                 D
1	4567	 3	        67.45
24	679	 76	        6.9
43	23	 234157	        8.3456
5	4	 346	        123.65
8	98	 890	        76.9
J'aimerais pouvoir exporter mes données et ajouter des zéros devant chaque colonne pour qu'elles soient toutes de même taille.

Code :
1
2
3
4
5
6
A       B       C                 D
01	4567	 000003	        067.4500
24	0679	 000076	        006.9000
43	0023	 234157	        008.3456
05	0004	 000346	        123.6500
08	0098	 000890	        076.9000

J'ai utilisé l'instruction put pour convertir mes données numériques en caractères mais ça ne me donne pas le résultat souhaité.


Si quelqu'un a une idée ...

Je vous remercie d'avance.

Najua
Najua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 14h37   #2
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
Bonjour,

Citation:
Envoyé par Najua Voir le message
J'ai utilisé l'instruction put pour convertir mes données numériques en caractères mais ça ne me donne pas le résultat souhaité.
Dans l'instruction PUT, tu peux utiliser, par exemple, le format Zw.d qui ajoute des 0 devant.
Exemple avec Z8. : 123 devient 00000123.

Bon courage,
Steel
__________________
Avant de poser votre question, n'oubliez pas :
FAQ, SAS DOC et de ce forum
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2011, 14h44   #3
Membre Expert
 
Inscription : mars 2005
Messages : 1 010
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 010
Points : 1 258
Points : 1 258
Envoyer un message via Yahoo à bahraoui
un exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
DATA t;
e=12;
format f z10. ;
f=e;
e1=12.3;
format  f1 z10.3;
f1=e1;
run;
 
 Obs     e          f              e1             f1
 
  1      12    0000000012    12.3    000012.300
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 14h48   #4
Invité régulier
 
Inscription : avril 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 37
Points : 8
Points : 8
Merci Steel et Bahraoui, je vais essayer tout de suite avec ce format.


En fait, à la fin j'aimerais pouvoir exporter mes tables au format txt mais sans délimiteur.
Donc n'est il pas possible de faire cette manipulation lors de l'export directement ?
Merci d'avance,

Najua
Najua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 15h16   #5
Membre Expert
 
Inscription : mars 2005
Messages : 1 010
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 010
Points : 1 258
Points : 1 258
Envoyer un message via Yahoo à bahraoui
oui c'est possible, tu peux appliquer le format au moment de l'écriture dans le fichier txt.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 17h16   #6
Invité régulier
 
Inscription : avril 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 37
Points : 8
Points : 8
En fait, je voulais savoir si à partir d'une option sas pouvait ajouter les zéros directement sans que j'ai à regarder la taille maximale de chaque variable.

Merci encore pour vos réponses.

Najua
Najua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 18h08   #7
Invité régulier
 
Inscription : avril 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 37
Points : 8
Points : 8
J'ai utilisé le format Zw.d sur mes données mais je rencontre un problème, lorsque d est supérieure à w :

Code :
1
2
3
4
5
6
7
8
9
3891  DATA t;
3892  e=12;
3893  format f z10. ;
3894  f=e;
3895  e1=12.3;
3896  format  f1 z10.11;
                 ------
                 156
ERREUR 156-185: La partie décimale de 11 doit être inférieure à la largeur de 10.

Y a t'il un autre format qui me permette d'ajouter des zéros au bout de la colonne.

Merci d'avance.

Najua
Najua est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 18h22   #8
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
non il n'y en a pas.

tu dois le faire avec des fonctions : repeat(), cat() etc


xav
xav2229 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 18h54.


 
 
 
 
Partenaires

Hébergement Web