|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
Bonjour,
J'ai une variable année au format year4. , j'aimerai faire une table par année donc je fais une étape data: Code :
Cela vient sans doute du format, comment régler ce problème? merci! |
||
|
|
00
|
|
|
#2 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
les dates sas sont de type numériques et non pas caractères.
|
|
|
00
|
|
|
#3 | ||||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Hello,
Es-tu sûr que ta variable annee est stockée au format year4. ? Je viens de tester le code suivant: Code :
Lorsque tu mets des guillemets, SAS convertit en numérique (Regarde ton log). Code :
|
||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
tu peux faire ceci ?
Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Retrouves le format associé à tes années (je prends comme postulat que ta variable année est formatée, c'est bien ca?).
exemple Code :
Dans ma dernière étape data je crée trois table sorties directement suivant la valeur de annee. Bon courage, Manoutz |
||
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
Lorsque je teste ton code L0007 :
Code :
1965 1965 1965 c'est normal ?
|
||
|
|
00
|
|
|
#7 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
oui c'est normal. à cause du format year ( supprime le format et tu verra que l'affichage est normal).
je t'ai dis que les dates SAS sont numériques et elles sont le nombre de jours depuis le 01 janvier 1960. alors SAS comprends que 2011, 2011 est un nombre de jour. Code :
|
||
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
oui je vois, mais ducoup comment je fais pour avoir mes tables de chaque année? Car ma variable à la base est une variable date, que j'ai mis en year4. pour essayer de faire un if annee=2010 then output : ce qui ne marche pas.
Le format d'origine de la variable est DATETIME20. et elle contient par exemple "26/11/2008 10:39:17". Comment puis-je faire alors pour avoir une table par année? Merci! |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Tu peux mettre en pièce jointe un échantillon de ton fichier? avec au moins deux années si possible.
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() |
il faut convertir ton datetime en year
annee=year(datepart(var_format_date_time)); datetime extrait l'année, mois, jours d'une variable datetime year extrait l'année d'une variable date (mois/jours/année)
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 58 ![]() |
ta solution marche bahraoui !
merci à vous tous! |
|
|
00
|
|
|
#12 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
+1 Bahraoui, il faut utiliser la fonction year.
Pour expliquer un peu plus: Les dates en sas sont de type numérique, c'est un nombre. Lorsque tu fais comprendre à sas que la variable numérique est une date, il va prendre comme date de référence le premier janvier 1960. 1=1 janv 1960 2=2 janv 1960 ... Code :
si tu vaux attribuer un nombre sas à partir d'une année, utilises la fonction mdy - pour month day year, avec la syntaxe: tu placeras la date sas au premier janvier de l'année de ta variable année |
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com