|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 11 ![]() |
Bonjour,
Je suis débutant en SAS et les macros, je ne maitrise pas encore ... Je vais vous exposer mon problème, merci de m'éclaircir. J'ai un ensemble de données (à peu près 1000 variables). Parmi ces variables, certaines serviront à la création de date (avec l'instruction mdy). Le problème est que j'ai des variables qui ont la valeur 00 (date indéterminé) : cela peut être le jour, le mois ou les deux. Les variables jour/mois/année se suivent dans la base. Je voudrais donc pouvoir extraire ces variables de la base pour corriger les valeurs. Sachant, que je ne compte pas parcourir toutes les variables avec la condition "if", je me demandais s'il y avait un autre moyen ? Je mets un exemple pour mieux comprendre. N t1 t2 t3 t4 t5 t6 t7 1 O O 00 00 1931 F G 2 N O 12 09 1900 R X 3 O N 15 01 2000 M X 4 O O 00 12 1956 J X 5 N N 19 02 2007 P X Je voudrais avoir la date à partir de t3-t5 Pour N = 1 et 4, cela ne sera pas possible ... Je donc voudrais avoir les variables dans une autre table SAS pour les corriger. Merci pour vos idées. Bien à vous. |
|
|
00
|
|
|
#2 | |||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Hello,
Je suis pas sûr d'avoir tout bien compris mais je me lance ![]() Citation:
Voici un petit bout de code qui pourra t'aider: Code :
|
|||
|
|
00
|
|
|
#3 | ||
|
Invité(e)
Messages : n/a ![]() |
Bonjour; tu peux remplacer tes valeurs au même temps que la lecture de ton fichier texte; essaie d'adapter sa ; bien entendu il y a aussi des solutions avec array et autres...;
Code :
|
||
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 11 ![]() |
Merci tout d'abord pour vos réponses.
Je n'ai peut être pas été clair. Le problème est que j'ai 1136 variables. @L0007 : je ne peux pas utiliser cette condition en vérifiant 1136 variables. Je veux justement éviter cela. @rosesansepines : j'ai donné les premières variables en exemple, dans ce cas ci, c'est possible. Mais comment faire pour toutes les variables suivantes ? t8-t1136 ? Merci à vous |
|
|
00
|
|
|
#5 | ||
|
Membre éprouvé
![]() Rémi Bousquetresponsable adjoint service stat Inscription : mars 2009 Messages : 334 ![]() |
Peut être une solution avec les vecteurs?
Ci-dessous un exemple : Code :
Le tout est de trouver la façon la plus pertinente de ne faire tes retraitements que sur la bonne liste de variable à retraiter. |
||
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 11 ![]() |
Merci RemiBousquet, ca m'aide pas mal ce genre de syntaxe.
![]() Par contre, comment faire pour stocker cela dans une autre base. J'ai essayé sur mon jeu de données cette syntaxe ... mais aie aie aie Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Rémi Bousquetresponsable adjoint service stat Inscription : mars 2009 Messages : 334 ![]() |
Qu'entends tu par "stoker dans une autre base de donnée",
Et en quoi cette syntaxe est difficile sur ton jeu de donnée ? |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 953 ![]() |
Remi etait presque au résultat voulu.
Si tu veux changer tous les 00 par 01 sur les variables t3,t4 et t5. Si jamais tu veux remplacer plusieurs variables que t3-t4, tu rajoute dans ma macro variable (ou passer par un proc contents). Voici le code: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com