|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Laurent Inscription : octobre 2010 Messages : 16 ![]() |
Bonjour à tous,
J'ai un fichier de données de 600 000 lignes de cette forme en résumé : 100102.......................... 200102.......................... 210102.......................... 300102.......................... 310102.......................... 400102.......................... 410102........................... 420102............................ 430102............................. 100103............................. 200103.............................. 300103.............................. 400103.............................. 410103.............................. 100104.............................. 200104.............................. 210104.............................. 300104.............................. 400104.............................. 410104.............................. 100105.............................. etc. Pour vous expliquer, je travaille sur le fichier des accidents en Aquitaine. Un accident est caractérisé par un ensemble de lignes de 10 à 4X avec dans cet ensemble un code_unite de 2 caracteres (3eme et 4eme car) et un numero_pv (5eme et 6eme car). Sur la ligne commençant par 10 j'ai les caractéristiques de l'accident avec en particulier la date et l'heure. Sur la ligne commençant par 20 ou 21 ou 22 etc., j'ai tout ce qui concerne le lieu de l'accident. Sur la ligne commençant par 30 ou 31 ou 32 etc., j'ai tout ce qui désigne les véhicules impliqués dans l'accident. Sur la ligne commençant par 40 ou 41 ou 42 etc., j'ai tout ce qui désigne les usagers impliqués dans l'accident. Quand je repasse par une ligne commençant par 10, je passe ainsi à un autre accident et tout ce qui va avec. J'ai intégré dans SAS ce fichier texte avec la méthode classique infile et input en créant 4 tables SAS suivant les caractères en début de ligne (10, 20, 30 etc.). Le problème vient du fait que le fichier a été parfois mal rempli par les autorités policières et que je me retrouve parfois pour (un code_unite ET un numero_pv) unique avec 2 dates distinctes ce qui ne devrait pas arrivé. Pour solutionner ça je dois ajouter la date et l'heure de l'accident et faire un identifiant unique de 14 car : 2 pour le code_unite, 2 pour le numero_pv, 6 pour la date et 4 pour l'heure. J'aimerais que cet identifiant unique soit présent dans mes 4 tables SAS ou plutôt dans les 3 autres tables SAS hors "caractéristiques" où il y est déjà. J'ai essayé avec l'instruction merge, de "fusionner" la table caractéristiques et la table lieux par exemple en essayant de rajouter la date et l'heure mais aux endroits où il y a 2 dates pour (un code_unite ET un numero_pv) il y a des erreurs. J'ai commencé SAS depuis peu et là j'avoue que je vois pas de solution évidente donc je fais appel à vous les boss du SAS. Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 133 ![]() |
T'as essayé en créant une seule table au début (au lieu de 4) et en créant un identifiant unique pour l'accident?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Laurent Inscription : octobre 2010 Messages : 16 ![]() |
Non mais c'est effectivement ce qu'il faudrait peut-être faire.
Quoique je ne sais pas si ce sera facile après de faire des études sur des usagers ou des véhicules sans qu'ils soient clairement définis dans des Tables SAS propres. Et puis pour être franc je ne sais pas comment faire en une seule table je vous laisse ici en fichiers joints un fichier texte test et mon programme sas qui intègre le fichier texte dans SAS. Merci d'essayer de m'aider en tout cas |
|
|
00
|
|
|
#4 | ||
|
Invité(e)
Messages : n/a ![]() |
Bonjour, si tu cherches à créer une variable commune entre tes 4 tables; teste ce code ;
Code :
Dernière modification par fafabzh6 ; 19/11/2010 à 09h52. Motif: Suppression citation |
||
00
|
|
|
#5 | ||
|
Invité de passage
![]() Laurent Inscription : octobre 2010 Messages : 16 ![]() |
Bonjour rose et merci de ton aide.
En fait dans ton code proposé tu me dis de remplir toutes les colonnes mais je ne comprends pas comment faire puisque les noms de colonnes changent suivant que la ligne commence par 10, 20 ou autres, en tout cas à partir du caractère 18. Par exemple dans la table caractéristiques, les car 18 et 19 donnent la colonne date_jour mais dans la table lieux le car 18 donne le code route, dans les tables véhicules et usagers le car 18 donne la lettre_conventionnelle. En bref dans mon input je peux pas mettre : Code :
|
||
|
|
00
|
|
|
#6 | ||
|
Invité(e)
Messages : n/a ![]() |
bonjour ;
si si tu peux; voici un exemple et tu l'adaptes: Code :
Julie. Dernière modification par fafabzh6 ; 19/11/2010 à 09h53. Motif: Suppression citation |
||
00
|
|
|
#7 |
|
Invité de passage
![]() Laurent Inscription : octobre 2010 Messages : 16 ![]() |
Wow ce serait énorme, je vais tester ça évidemment
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com