IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Compactage des doublons [DATA]


Sujet :

SAS Base

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut Compactage des doublons
    Bonjour,

    Je doit compacter les doublons selon une condition et je n'arrive pas à trouver de solution:

    exemple




    CIV PRENOM NOM ADRESSE ID
    Mme LEA DURANT 7 RUE DES FLEURS PARIS 1
    Me JEAN DURANT 7 RUE DES FLEURS PARIS 1
    M FRANCK RIU 7 JEAN BOUIN LILLE 2
    M FRANCK RIU 7 JEAN BOUIN LILLE 2
    Mme ASSIA ABOTT RUE DU TRESOR AMIENS 3
    PIERRE ABOTT RUE DU TRESOR AMIENS 3





    Et je veux avoir ça:

    PRENOM et NOM ADRESSE ID
    Me et Mme LEA et JEAN DURANT 7 RUE DES FLEURS PARIS 1
    M FRANCK RIU 7 JEAN BOUIN LILLE 2
    Me et Mme ASSIA et PIERRE ABOTT RUE DU TRESOR AMIENS 3



    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonjour, ça ne va pas être simple...
    Tu vas pouvoir trouver un certain nombre de règles, par exemple à base de REGEX pour traiter un certain nombres de cas (comme tes deux premiers), tes troisièmes et quatrième peut-être aussi, pour les deux autres dernier ça risque d'être très compliqué sans s'aventurer dans le domaine du TALN (http://fr.wikipedia.org/wiki/Traitem...angage_naturel), sachant que ce dernier est le cadre idéal pour régler ce genre de problèmes (car tu vois bien qu'il faut par exemple connaître les "concepts" de prénom et de genres dans ton troisième exemple sur Amiens, et ça les REGEX n'y pourront rien, tu es donc obligé d'avoir des "lexiques"). Et ce n'est que les premiers exemples...J'imagine que tu vas avoir plein d'autres cas tordus.

    Pour être pragmatique, je pense que tu dois décider lesquels tu vas pouvoir traiter (les évidents comme M et Mme Duchemol) et laisser les autres de côtés (Mme Truc et Pierre Truc).



    Bon courage à toi !

  3. #3
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    Merci,


    je vais essayer de bidouyer!!!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Je ne sais pas si ce code va répondre exactement à ta question ?
    Si non tu peux l'adapter pour trouver la solution souhaitée.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    data exemple ;
    infile datalines   ;
    input @1 CIV:$ @5 PRENOM:$ @12 NOM:$  @19 ADRESSE $22. @42 ID	;
    datalines ;
    Mme LEA    DURANT 7 RUE DES FLEURS PARIS 1
    Me  JEAN   DURANT 7 RUE DES FLEURS PARIS 1
    M   FRANCK RIU    3 JEAN BOUIN LILLE     2
    M   FRANCK RIU    3 JEAN BOUIN LILLE     2
    Mme ASSIA  ABOTT  4 RUE DU TRESOR AMIENS 3
    Me  PIERRE ABOTT  4 RUE DU TRESOR AMIENS 3
    ; run ;  
     
    proc sort data exemple ; by id ; run ;			 
     
    data exemple1 (keep=_CIV PRENOM_et_NOM ADRESSE ID) ;  
    length _CIV $20. PRENOM_et_NOM $40. ; 
     
    do until (last.id);	
    set exemple (rename=(civ=m_civ prenom=m_prenom nom=m_nom)) ; 
    by id ;    
    end;
     
    do until (last.id);
    set exemple ; 
    by id ;
    if first.id then do ;
     
    if civ ne m_civ then do ; 
    _civ =cat(strip(civ), ' et ', m_civ) ;  
    PRENOM_et_NOM=cat(strip(prenom), ' et ', m_prenom, nom) ; 
    output;  end ;
     
    if civ eq m_civ then do ; 
    _civ =civ ;
    PRENOM_et_NOM=cat(prenom, nom) ;   
    output;  end ; 
      			   end ; 
    end;
    run;
    Cdt Ward

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DTS] Import de données avec des doublons
    Par Hotchotte dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/03/2005, 14h19
  2. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27
  3. 1 Table, Des doublons, ne rertenir que certains d'entre eux
    Par Dragano dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/01/2005, 12h06
  4. Effacer des doublons
    Par ben53 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/07/2004, 17h56
  5. Réponses: 2
    Dernier message: 07/07/2004, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo