Bonsoir à tous!
Voici mon petit soucis... Cela fait depuis deux jours que j'essaie d'utiliser cette base de données ( http://www.econ.yale.edu/~shiller/data/ie_data.xls ) afin d'étudier le lien entre deux variables (CAPE et taux d'intérêt à long terme qui sont dans l'excel ci-dessus parmi d'autres variables).
Seul soucis, les dates sont dans un format bizarre... Les données sont mensuelles et débutent en 1871,01 (pour janvier 1871), avec pour le mois d'octobre du coup 1871,1.
Voici comment je procède:
1. j'importe le fichier excel grâce à la "proc import" après avoir nettoyé sous excel les premières lignes afin de conserver le nom des variables sur la première ligne. J'obtiens donc toutes les variables du fichier excel.
2. Je souhaite transformer les dates en passant par SAS en format MONYY7. mais je dois mal m'y prendre car ça ne fonctionne pas comme je le souhaiterais... Par exemple 1871,01 se transforme en FEB1965 et il en va de même pour les 180 dates suivantes, puis ça passe à MAR1965 pour les 180 suivantes etc... Pour faire cela, j'utilise dans l'étape data "informat date MONYY7.;".
Connaissez-vous une autre solution sous SAS pour transformer ce nombre en date MONYY7.?
J'ai tenté également de créer une table vide pour créer les dates au format voulu sur la période souhaitée puis merger le tout. Mais je n'arrive pas à les créer sous le format mensuelle... Le format journalier fonctionne grâce au code fourni par hammamr dans un topic de 2009:
Mais quand je tente de l'adapter à ma situation il ne fonctionne pas....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DATA work.liste_dates ; format date ddmmyy10. ; /* Format d'affichage JJ/MM/AAAA */ do date='01jan2000'd TO '31jan2009'd ; output work.liste_dates ; /* Ecriture dans la table en sortie (liste_dates) */ end ; run ;
Si vous avez des idées je suis preneuse.. J'aimerais autant que faire se peut importer le fichier excel et le retravailler exclusivement avec SAS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DATA work.liste_dates ; format date MONYY7. ; do date='JAN1871'd TO 'APR2012'd ; output work.liste_dates ; end ; run ;
Merci beaucoup de m'avoir lu ^^
Partager