Ce n'est pas une simple suppression des doublons - je veux supprimer les lignes en double par leur valeur appariée dans 2 colonnes - dans 1 colonne, il y a les identifiants cliniques uniques, dans l'autre, l'année du diagnostic d'une maladie. Je veux appliquer la condition qui fait double emploi pour un identifiant de clinique unique (c.-à-d. un patient) devrait être retiré si les années correspondantes du diagnostic se situent à un an l'une de l'autre. aucune disposition pour une telle chose dans JMP? par exemple, un diagnostic en 2015 et 2016 devrait être considéré comme un seul et l'année 2015 devrait être conservée. J'ai essayé les options rejoindre et résumé sans succès. des idées?
Merci beaucoup pour votre réponse. Je suis un débutant chez JMP et je ne sais pas comment exécuter le script. Pourriez-vous me dire où remplacer les noms de table et de colonne dans ce script? par exemple, nom de table - Preg, noms de Coulmn - numéro de clinique, année.
J'apprécie l'aide!
Voici une autre variante de la même idée. Il identifiera les doublons selon vos règles. Pour 2015 et 2016, 2015 sera retenue. pour 2014, 2015, 2017, 2018, 2015 et 2017 seront conservés, mais sachez que s'il y a plus de deux années consécutives, par exemple 2015, 2016, 2017, seul 2015 sera retenu.
// Example table
dt = New Table("test",
Add Rows(13),
New Column("Clinic", "Character", Set Values({"A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "E", "E", "E"})),
New Column("Year", Set Values([2016, 2017, 2015, 2016, 2015, 2016, 2015, 2018, 2010, 2011, 2016, 2017, 2018]))
);
// Select multiples based on criteria: same clinic and same or adjacent year
dt << sort(Replace Table, By(:Clinic, :Year));
dt << select where(Col Min(Row(), :Clinic, If(Row() == 1, 0, Dif(:Year)) <= 1) < Row());
// dt << delete rows;
Voici un petit script qui, je crois, trouvera les doublons. Il suppose que la colonne date contient une valeur de date JMP. Les noms des colonnes utilisées dans le script devront être modifiés dans le script pour correspondre aux noms réels de votre table de données.
Names Default To Here( 1 );
dt = Current Data Table();
delList = {};
For( i = 1, i <= N Rows( dt ), i++,
curID = dt:id[i];
curRows = dt << get rows where( :id == curID );
minIDdate = Min( :date[curRows] );
curDateList = As List( :date[curRows] );
minIDRow = (curRows)[Loc( curDateList, minIDdate )];
If( i != minIDRow,
If( :date[i] <= minIDdate + In Years( 1 ),
Insert Into( delList, i )
)
);
);
// dt << delete rows( delList );
// or
dt << New Column( "Duplicate", character );
dt:Duplicate[delList] = "Duplicate";