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 19/11/2007, 22h12   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
Par défaut Changer le format d'une variable

bonsoir tout le monde,

J'ai une table qui contient 2 variables X1 et X2 au format alphanumérique alors que les modalités sont du type 01,115 ou 010,51.

Est il possible d'avoir un format numérique ?

merci de votre aide.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 09h04   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Bonjour,
Dans ton importation tu peux affecter le format à l'aide de attrib :
Code :
1
2
3
4
5
6
7
DATA basel;
SET baseBis;
ATTRIB var
	LABEL="NomVar"
	FORMAT=$5.
	LENGTH=$ 5;
RUN;
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 14h27   #3
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
bonjour merci de ton aide. mais ça ne marche pas car il me dit que la longueur a déjà été définie.

en fait, j'ai des valeurs comme 0.001, 005.23, 0.123 ... (très différentes) mais ils sont au format alphanumérique et on veut les changer en numérique.

dans un premier temps, il faudrait créer 2 nouvelles variables avec le bon format puis faire un DROP des anciens, puis faire un RENAME des nouvelles.

mais comment faire pour créer mes nouvelles variables ?

existe il une fonction ?

je pensais être sur la bonne piste avec ce programme mais ça ne marche pas.

Code :
1
2
3
4
5
DATA gareat.petitbis3; 
SET gareat.petit (DROP=WCAP16); 
WCOEF01_bis=input(WCOEF01,Best12.); 
WCOEF02_bis=input(WCOEF02,Best12.); 
run;
merci de votre aide.

ash_rmy.
ash_rmy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 16h36   #4
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,

Avant de faire ton input, il faut que tu transformes tes , en . car en SAS, les valeurs numériques utilisent les . comme séparateur.

Tu peux utiliser pour cela translate
Code :
  WCOEF01_2=translate(WCOEF01,'.',',');
et après faire ton input
Code :
  COOEF01_2bis=input(WCOEF01_2,Best12.);
Ca devrait fonctionner.
bab22 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2007, 17h42   #5
Membre habitué
 
Inscription : juillet 2006
Messages : 284
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 284
Points : 107
Points : 107
Effectivement, ça fonctionne.
Merci

ash_rmy.
ash_rmy 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 16h17.


 
 
 
 
Partenaires

Hébergement Web