Bonjour,
Comment récuperer les 3 dernier position d'une valeur numerique
exemple
Col1
1234
1245
1475
pour avoir
Col1
234
245
475
ya t-il une fonction sur EG ?? svp
Bonjour,
Comment récuperer les 3 dernier position d'une valeur numerique
exemple
Col1
1234
1245
1475
pour avoir
Col1
234
245
475
ya t-il une fonction sur EG ?? svp
la fonction mod() marche a merveille. A priori pas de soucis sur EG.
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 DATA test; input VAR 8.; CARDS; 1453 2321 112 32132 2118 18745 ; RUN; DATA final; SET test; nonmil=mod(VAR,1000); run;
mais cette fonction devise mais ce n'es pas ce que je veu?
Hello,
à adapter :
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 Col1; cards; 1234 1245 1475 ;run; data exemple1; set exemple; col2= substrn(col1,2,3); 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
c'est une colonne numerique et substrn je peux l'utiliser uniquement sur la alpha ? corrige moi si je me trompe samir
t'as testé le CODE au moins ?
le SUBSTRN tu peux l'appliquer directement sur du numérique. Pour avoir du numérique en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 col2= substrn(col1,2,3)*1;
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
je n'utilise pas la fonction devise, qui n'est pas une fonction sous sas, a ma connaissance. En quoi ce que je propose ne convient pas?
Merci Manoutz et Samir !!!
le substrn me donne tou le tps des '0' pour la totalité des valeurs que j'ai, et j'ai utilisé le mod() ça marche mais il prend pas la valeur '0' si elle est au début
exemple: 721042 il m'affiche que 42 mais pas 042 il ya moyen déviter sa ? si non je peux rajouté des zéro la ou il me manque !!
Merci bq
Mister,
les valeurs numérique ne commencet pas par des ZERO. sauf cas "0,.."
si tu veux avoir des zéro au début, il faut une variable CHAR.
avec le SUBSTRN sa marche pas ? t'as testé le code que je t'ai donné avec l'exemple que t'as fourni?
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
merci pour la remarque qui concérne le '0' et les alph j'ai carément zapé cette info lol dsl,
j'ai utilisé substrn sur ma table réel pas sur l'exemple que j'ai donné et ça n'a pas marché elle me sorté une seule valeur pour chaque ligne sur ma table et qui = à '0' et je comprend pas pourquoi
C'est pas mal avec la fonction mod, après faut convertir en alpha et rajouter le "0" devant si la longueur est inf à 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 x=mod(var,1000); if length(x)<3 then do; x2=cats("0",put(x,$2.); else; x2=put(x,$3); end;
oui merci c'est ce que je compté faire ..
un grand merci à tout le monde
Si la longeur=2 tu rajoutes un 0
Si la longeur=1 tu rajoutes deux 0
pas besoin de convertir en caractère , ni de concatiner . Un simple format Zw et HOP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 data exemple ; format col1 Z3.; input Col1; cards; 34 245 5 ;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
Merci samir !! c'est ce que j'ai utilisé tu ma passer ce code il ya quelque mois et je lé dans ma tete lol
Merci bq a tou le monde![]()
Une question ,
si je veux les 3 premier position exemple
1245854
1457885
pour avoir
1245
1457
c'est toujour mod() ??
Non, dans ce cas ce n'est pas MOD qui est une fonction calculant des modulos. C'est à dire des restes de divisions dans le monde des entiers.
Pour ton 2e problème, divise par 10000 et prends la partie entière.
Partager