Comment puis-je sélectionner des lignes qui sont identiques en fonction d'une (première) colonne mais différentes en fonction d'une autre colonneSalut tout le monde.
J'essaie de formuler un script (JMP 13) qui me permettra d'isoler les enregistrements (lignes) qui sont identiques sur la base d'une colonne mais différents sur la base d'une autre colonne. Plus en détail, j'ai fait deux observations/mesures sur le même échantillon mais pour certains échantillons le résultat est différent. Comment puis-je isoler ces cas ? J'ai essayé cela (et il me manque probablement quelque chose de très basique - toutes mes excuses):(
// Assume the columns are "ColumnA" and "ColumnB"
dt = Current Data Table(); // Reference the current data table
// Loop through each row and compare values in the specified columns
For(i = 1, i <= N Row(dt), i++,
// Compare with every other row to find matches on ColumnA but differences on ColumnB
For(j = i + 1, j <= N Row(dt), j++,
If(dt:ColumnA[i] == dt:ColumnA[j] & dt:ColumnB[i] != dt:ColumnB[j],
dt << Select Row(i);
dt << Select Row(j);
)
)
);
Toute aide concernant ce problème sera grandement appréciée.
Automatisation et scriptsRé: Comment puis-je sélectionner des lignes qui sont identiques en fonction d'une (première) colonne mais différentes en fonction d'une autre colonneExcellent, merci beaucoup Jim.
Ré: Comment puis-je sélectionner des lignes qui sont identiques en fonction d'une (première) colonne mais différentes en fonction d'une autre colonneLa fonction
dt << Sélectionner Où()
sélectionnera toutes les lignes qui correspondent à la condition spécifiée en une seule fois, ce qui éliminera la deuxième boucle For(). Ce sera également beaucoup plus efficace. Vous trouverez ci-dessous un exemple
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row(
currHt = :height[Row()];
currWt = :weight[Row()];
dt << select where( :height == currHt & :weight != currWt, current selection( "extend" ) );
);