Come posso selezionare righe che sono uguali in base a una (prima) colonna ma diverse in base a un'altra colonna?Ciao a tutti.
Sto cercando di formulare uno script (JMP 13) che mi consenta di isolare record (righe) che sono uguali in base a una colonna ma diversi in base a un'altra colonna. Più in dettaglio, ho fatto due osservazioni/misurazioni sullo stesso campione ma per alcuni campioni il risultato è diverso. Come posso isolare questi casi? Ho provato (e probabilmente mi sfugge qualcosa di molto basilare - mi scuso:(
// 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);
)
)
);
Vi saremo molto grati per aiutarci a risolvere questo problema.
Automazione e scriptingR: Come posso selezionare righe che sono uguali in base a una (prima) colonna ma diverse in base a un'altra colonna?Ottimo, grazie mille Jim.
R: Come posso selezionare righe che sono uguali in base a una (prima) colonna ma diverse in base a un'altra colonna?La funzione
dt << Seleziona Dove()
selezionerà tutte le righe che corrispondono alla condizione specificata tutte in una volta, il che eliminerà il secondo ciclo For(). Sarà anche molto più efficiente. Di seguito un esempio
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" ) );
);