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 18/10/2011, 12h29   #1
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
Par défaut Changement de format

Bonjour,

je souhaite transformer des données de types text en réel ou en date ,

je rappelle que ces données se présentent comme de nombres mais ont un format text.

Merci
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h45   #2
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Citation:
Envoyé par kedmard Voir le message
je rappelle que ces données se présentent comme de nombres mais ont un format text.
Bonjour,

je pense qu'il faudra un peu plus que ça pour t'aider.

Il peut s'agir de format DDMMYYYY ou DDMMYY ou YYMMDD etc...

As tu un exemple de données ?
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 14h40   #3
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
j'ai pu regler le problème de dates , il me reste plus qu'à regler celui des numériques.

Je te donne les détails:

j'ai importé un fichier text malheursement certaines variables numériques se présentent sous format text, j'ai donc eu le code suivant

Code :
1
2
3
4
5
6
DATA work.essai11a ;
    SET work.essai11 ;
    drac_ech_num = input(drac_ech, 7.2);
    var38_num = input(var38, 8.);
	Poucent_RA_num=input(Poucent_RA, 8.);
run ;
pour le résoudre.

Le problème est que les nouvelles variables drac_ech_num et var38_num ne prennent des valeurs entières lorsque ce n'est pas le cas j'ai un point à c-à-d

var38_num=. pour var38_num=5 77.11 par ex

Et c'est ce que je veux corrigé.

Dis mois si tu veux plus de détails.

Merci
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 15h43   #4
Membre éprouvé
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 334
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 35
Localisation : France

Informations professionnelles :
Activité : responsable adjoint service stat
Secteur : Finance

Informations forums :
Inscription : mars 2009
Messages : 334
Points : 464
Points : 464
Normalement ça devrait marcher, cf exemple suivant :
Code :
1
2
3
4
DATA work.test ;
    var38 = "577.11" ;
    var38_num = input(var38, 8.);
run ;
A moins qu'il n'y ai vraiment un espace entre le 5 et le 7, comme dans ton message ? ("5 77.11")
Dans ce cas, un compress pourrait aider
Code :
1
2
3
4
DATA work.test ;
    var38 = "5 77.11" ;
    var38_num = input(compress(var38), 8.);
run ;
Si ça ne marche pas, il faut peut-être que tu donnes plus de détail sur ta VAR38 et les valeurs qu'elle peut prendre
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h33   #5
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
Le problème persiste, j'ai éxécuter la proc contents, voici ce qu'elle donne sur:


Variable Type Long. Format Informat


DRAC_ECH Texte 12 $12. $12.

VAR38 Texte 16 $16. $16.
drac_ech_num Num. 8

43 var38_num Num. 8




Var38_num et drac_ech_num ne prennent que des nombres entier comme valeurs.
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 15h16   #6
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
j'ai remplacé dans le code

Code :
drac_ech_num = input(compress(drac_ech), 8.)
;

8. par comma5.2 il n'y aplus de valeurs manquantes mais les valeurs ne sont pas les mêmes par exemple:

drac_ech=144 =>drac_ech_num=1.44
drac_ech=29.258 =>drac_ech_num=29.25
drac_ech=139.41935 =>drac_ech_num=13.94


Je rappelle que ce fichier text vient de brioquery, j'ai donc extrait une partie de cette base de données de brio, que j'ai exporté dans excel et de excel dans sas ensuite j'ai fait une "proc content" qui me présente la variable drac_ech en format comma11.2 d'où l'idée de changer 8. en comma malhureusement ça ne resoud pas le problème
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 17h06   #7
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 011
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 011
Points : 1 712
Points : 1 712
Hello,
je n'ai pas bien compris ce qui te pose problème.
essaies de voir avec les deux informats suivants:
Code :
1
2
3
4
5
6
 
DATA test;
a="5 77.11";
b=input ( a,commax7.2);
c=input (a,comma7.2);
run;
pour quoi ne pas exporter ton fichier Excel en CSV et l'importer avec une étape data infile et fixer les variables dont t'en a besoin en numérique.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 10h24   #8
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
9a y est j'ai trouvé la solution il fallait juste remplacer dans le fichier text la virgule sur les nombres décimaux par un point et ensuite faire l'importation.

Merci quand messieurs pour vos iddées.

Kedmard.
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 11h44   #9
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 011
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 011
Points : 1 712
Points : 1 712
même pas besoin de faire sa, t'as
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 14h39   #10
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
J'ai essayé ceci:



Code :
1
2
drac_ech_num=input(compress(drac_ech), commax6.2);
var38_num= input(compress(var38), commax10.2) ;
pour les nombres décimaux ça mais pour les entiers c'est pas bon j'ai par exemple:

drac_ech=18 => drac_ech_num=0.18

var38=824 => var38num=8.24
kedmard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 15h10   #11
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 180
Points : 34
Points : 34
avec celui par contre tout est bon:

Code :
1
2
drac_ech_num=input(compress(drac_ech),numx.);
var38_num= input(compress(var38), numx.) ;
kedmard 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 05h24.


 
 
 
 
Partenaires

Hébergement Web