|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
Bonjour,
J'ai une table qui contient des doublons. j'ai réussi a separer les doublons mais je souhaite corriger les doublons au lieu de les supprimer. en entrée j'ai: id auteur article 22 alex roi lion 23 alex roi lion 21 jim major 26 jim major 25 jim major en sorti je veux avoir: id auteur article 22 alex roi lion 22 alex roi lion 21 jim major 21 jim major 21 jim major donc je veux avoir une correction sur le ID du deuxième doublons pour avoir un seul id pour chaque doublons. merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
tu dois créer une étape DATA dans laquelle tu testes si l'auteur de la ligne N est identique à celui de la ligne N-1 ((avec la fonction LAG). Dans ce cas, il faut récupérer l'id précédent (avec la fonction LAG) et l'appliquer à la ligne en cours.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Question de philosophie, je ne passerais pas par un LAG mais par des blocs d'observations. Si c'est la 1e ligne d'une série de doublons on stocke la valeur de l'ID (penser à la protéger par un RETAIN) et pour les autres lignes je me sers de la valeur stockée pour corriger.
Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
votre réponse m'a aidé dans mon programme mais il reste des cas qu'il ne gère pas. car quant j'ai deux doublons d'auteurs avec deux article différents
l'exemple: aakeer d et aakeer da est la même personne donc après correction on doit avoir un seul id pour le AAker DA et le AAkeer D. AAKER DA 80487 BRAND EQUITY ADVERTI AAKER D 164249 BRAND EQUITY ADVERTI AAKER DA 80487 BRAND LEADERSHIP AAKER D 164249 BRAND LEADERSHIP AAKER DA 80487 BUILDING STRONG BRAN AAKER D 164249 BUILDING STRONG BRAN AAKER D 164249 MANAGING BRAND EQUIT AAKER DA 80487 MANAGING BRAND EQUIT AAKER D 164249 MARKETING RES AAKER DA 80487 MARKETING RES AAKER JL 40523 J CONSUM RES AAKER J 207492 J CONSUM RES AARON HJ 33083 BROOKINGS REV AARON H 17749 BROOKINGS REV AARONSON NK 53417 QUAL LIFE RES |
|
|
00
|
|
|
#5 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
hello,
est ce que tu peux donner un exemple de tes données? avec les noms de colonnes bien sûre. |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
auteur id article
AAKER DA 80487 BRAND EQUITY ADVERTI AAKER D 164249 BRAND EQUITY ADVERTI AAKER DA 80487 BRAND LEADERSHIP AAKER D 164249 BRAND LEADERSHIP AAKER DA 80487 BUILDING STRONG BRAN AAKER D 164249 BUILDING STRONG BRAN AAKER D 164249 MANAGING BRAND EQUIT AAKER DA 80487 MANAGING BRAND EQUIT AAKER D 164249 MARKETING RES AAKER DA 80487 MARKETING RES AAKER JL 40523 J CONSUM RES AAKER J 207492 J CONSUM RES AARON HJ 33083 BROOKINGS REV AARON H 17749 BROOKINGS REV AARONSON NK 53417 QUAL LIFE RES |
|
|
00
|
|
|
#7 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
hello,
dans l'étape DATA j'ai ajusté un peu tes données pour éviter la lecture à longueurs variables qui pourra faire un utre sujet de discussion. Olivier ta proposé un code qui marche parfaitement avec l'exemple de données que t'as proposé au début. dans ton cas sa n'a pas marché parce que aakeer d et aakeer da sont différents. Code :
|
||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
deux auteurs représentent la même personne que quand il ont le même nom et quant ils ont écrit au moins un même article. donc ici Aaker DA et Aaker D sont la même personne. Mais Aaker JL et Aaker da ne sont pas la même personne. J'ai repris ton programme mais il fait Aaker Jl et Aaker DA comme meme personne. ce qui n'est pas le cas.
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Je ne sais pas si quelqu'un aura une solution miracle si tes données ne sont pas plus propres que ça. Je ne pense pas que SAS soit extra-lucide pour deviner que deux auteurs sont les mêmes ou pas alors qu'ils n'ont pas le même nom.
Cela dit, à partir de la proposition de SAM, tu peux extraire le nom de l'auteur. Et avec ce qu'on t'a déjà proposé, mettre le même nom+prénom à un auteur si le titre et le nom sont les mêmes : la manip (tri + SET BY + RETAIN) est la même que pour corriger tes identifiants. A toi de jouer. Olivier |
|
|
00
|
|
|
#10 | |
|
Membre éclairé
![]() statisticien Inscription : mai 2011 Messages : 212 ![]() |
Citation:
Tu aurais déjà du commencer par ceci, c'est à dire parce que tu entend par même auteur, comme le dit Olivier SAS n'est pas extralucide pas plus que les participants de ce forum. Je pense que les conseils ci-dessus vont te permettre de répondre à ta problématique. Par contre tu va avoir besoin d'une variable distincte "nom" et d'une variable distincte "prénom". Si ce n'est pas le cas, et que tu as une variable unique pour le nom de l'auteur (soit prenom+nom ou nom+prenom et d'autres petites subtilités) et bien je te souhaite bon courage ![]() Avec un peu de méthode tu pourras y arriver, d'autant qu'avec un peu d'inventivité la programmation de processus "d'apprentissage" permettant de cerner les différents cas est possible, même si elle peut être parfois laborieuse. SAS comporte en outre des fonctions d'évaluation de distance entre chaines de caractères qui peuvent se trouver fort utiles pour cet exercice et remédier aux inévitables fautes d'orthographe. Une bonne connaissance de tes données te sera nécessaire. Bon courage. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com