|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 14 ![]() |
Bonjour,
j'ai une table du type : Identifiant 1 identifiant 2 1 1 1 2 2 1 2 2 J'aimerai faire un tri de manière à supprimer les lignes où on retrouverai soit l'identifiant 1 soit l'identifiant 2. Autrement dit, l'objectif est d'avoir un résultat semblable à : Identifiant 1 identifiant 2 1 1 2 2 ou Identifiant 1 identifiant 2 1 2 2 1 merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
dans ton exmple de sorties, dans les deux cas tes variables identifiant1 et identifiant2 sont présentes, et dans les deux cas également les différents identifiants de ta variable apparaissent...
je te donne en tout cas le code qui permet de générer les deux tables de sortie à de ta table entrée: Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 14 ![]() |
Merci, mais je me rend compte que je n'ai pas été assez clair.
Et mon exemple est trompeur. Voyons ça autrement, V1 V2 01 AB 01 CD 01 EF 02 AB 02 CD L'objectif est que chaque individus identifié par V1 ne soit lié qu'a un individu lié à V2 et vice-versa là, mes résultats possibles (et je n'ai aucune préférence) seraient, V1 V2 01 AB 02 CD ou V1 V2 01 CD 02 AB ou V1 V2 01 EF 02 AB ou V1 V2 01 EF 02 CD pas certain d'être beaucoup plus précis ... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
.... oui et non.
je pense voir ou tu veux en venir, mais il existe une combinaison infinie de sorties possibles pour peu que ton dataset entrée ait un minimum de lignes. Je rajoute la contrainte "il ne m'importe pas de savoir quelle est supprimée tant que je n'ai pas de doublons dans ma table finale". mais tu tu peux faire par exemple deux proc sort avec un nodupkey et un out=. dans ton by , tu mettras une variable dans le premier sort , puis les deux variables dans ton deuxième sort |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
une solution peut etre meilleure:
Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 14 ![]() |
non, cela ne marche pas.
Je me retrouve avec la première ligne de V2 pour chaque individu de V1. Je vais continuer à chercher. Merci tout de même |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
OK donc il faut rajouter d'autres contraintes à ton problème, comme "pas de doublons dans V1 ET dans V2".
Il serait bien que tu fournisses un jeu de données sas (ou une étape data le générant) pour pouvoir tester ca. A prioiri je m'orienterais vers une approche proche de ma première proposition. A tester. Manoutz |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Alors si j'ai bien compris, l'idée est d'avoir en résultat des observations avec des valeurs uniques de V1 et V2, prises séparément, avec comme contrainte que le couple V1,V2 appartienne aux données d'origine.
En réfléchissant à la question ce week-end, j'imaginais une petite variante du jeu de données, genre V1 V2 ---------- 01 CD 01 EF 02 AB 02 EF 03 CD qui n'a qu'une seule solution. Et qu'il ne faudrait pas modifier beaucoup pour qu'il n'existe pas de solution du tout. Alors ça me semble un genre d'allocation optimale, et plutôt que de bricoler des macros il serait peut-être malin (si tu as le module SAS/OR) d'aller chercher dans des procédures comme OPTMODEL ou NETFLOW ou autres (je ne connais quasiment rien à OR et à ce genre de problèmes). Bon courage. Olivier |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Citation:
Mais avant de se lancer dans des procédures particulières (ce qui m'intéresse même si je n'ai dans ce cas pas les ressources pour vous aider), je pense par pragmatisme qu'il peut être bon de regarder le jeu de données afin de voir la complexité du problème. S'il y a peu de doublons il y a peut être moyen de s'en sortir via une petite bidouille toute bête. En ce sens je commencerais par un petit tableau de fréquence pour chacune des deux variables, couplée à un regard du jeu de donnée... |
|
|
|
00
|
|
|
#10 | ||
|
Membre du Club
![]() Fabien Inscription : novembre 2008 Messages : 59 ![]() |
Bonjour,
Un peu la flemme d'automatiser, sur cet exemple regarde ce code : Code :
Suistrop |
||
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Voici la version macro, reste à savoir si on doit supprimer les cas où
VAR2_1=AB VAR2_2=CD VAR2_1=CD VAR2_2=AB Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre habitué
![]() Sébastien RinguedéInscription : janvier 2011 Messages : 61 ![]() |
puisque, si j'ai bien compris, V1 et V2 ne doivent jamais être observés deux fois, ce petit programme doit fonctionner (pas super testé parce que bricolé un peu vite...)
Code :
Cordialement Sébastien Ringuedé |
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Bonjour Sébastien,
Tu aurais pu appliquer à son cas car il y a trop de lignes pour constater le dédoublonnage. J'ai pas dit que c'est faux, loin de là. Bonne journée |
|
|
00
|
|
|
#14 | ||
|
Membre habitué
![]() Sébastien RinguedéInscription : janvier 2011 Messages : 61 ![]() |
ben il suffit de remplacer mon étape data du départ par :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com