Bonjour,
Connaissez-vous le format put(nom variable, z Nb caractères) ? Ca ne marche pas, que faut-il modifier ? Merci...
Bonjour,
Connaissez-vous le format put(nom variable, z Nb caractères) ? Ca ne marche pas, que faut-il modifier ? Merci...
Hello,
C'est quoi qui ne marche pas ?
voici un exemple d'utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 data exemple; input var; var1= put (var, Z4.); cards; 1 12 123 1234 ; run;
N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
N'oubliez pas de mettre votre message à si la solution donnée résout votre problème
ne marche pas, pourtant la syntaxe y est ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 data matable ; infile 'chemin/fichier.txt' delimiter='09'x missover dsd lrecl=17 firstobs=2 ; length num $ 4 var2 $ 1 var3 $ 8 ; input num var2 var3 ; format num $4.; new_num = put (num, Z4.); run;
Fausse...ne marche pas, pourtant la syntaxe y est ?
Essaies ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new_num = put (num*1, Z4.);
N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
N'oubliez pas de mettre votre message à si la solution donnée résout votre problème
thx
peut-on savoir pourquoi il faut multiplier par *1 (je crois comprendre que c'est une multiplication) ?
la multiplication a pour but de faire comprendre a SAS qu'il faut traiter un numérique et non un caractère.
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
Re-bonjour,
Une petite remarque à ajouter : j'ai des données qui ont une lettre dans le code auquel on applique le put(...)
Résultat : message d'erreur (invalid data) + valeur manquante dans la table de sortie.
Peut-on modifier le code ?Merci.........
Code : Sélectionner tout - Visualiser dans une fenêtre à part new_num = put (num*1, Z4.);
indication : lorsqu'il y a une lettre, les valeurs de la variable ont 4 caractères, (et non 3 auquel on devrait rajouter un 0), donc, peut-on se servir d'un ELSE NOT ?
Une autre solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 DATA exemple; input var $4.; if (length(var) < 4) then ; var= cats(repeat('0',(4-length(var) )) , var); cards; 1 12 123 1234 a ab abc ; run;
N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
N'oubliez pas de mettre votre message à si la solution donnée résout votre problème
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager