If / Then scriptingCiao gruppo, spero che qualcuno là fuori possa aiutarti!
Sto cercando un pezzo di codice per aiutare con alcuni filtri if / then.
Nella tabella dei dati allegata, ci sono vari numeri di lotto con più SampleID, di "sapori" diversi.
L'obiettivo è questo:
Se il LOT # è la prima istanza, allora sarà selezionato. Se la riga successiva è la stessa, la salterà e continuerà a saltare finché non vedrà un nuovo LOT #.
Sarà selezionata la nuova prima istanza del prossimo LOT #. E proseguendo.
Mi piacerebbe quindi che quelle righe selezionate fossero sostituite in una nuova tabella di dati.
Spero che qualcuno sappia se è possibile. JMP può fare qualsiasi cosa, quindi sono sicuro che sia, semplicemente non so come.
Grazie mille!
Re: If / Then scripting @kwmcm ,
Forse qualcosa di simile
dt = Current Data Table();
dt << Sort(By(:LOT#),Order(Ascending),Replace Table(1));
// Get Lot #
LotNums = dt:LOT# << Get Values;
// Get Unique Lot #
UniqueLotNums = Associative Array(LotNums) << Get Keys;
// Define List and new column values
SaveList = [];
// Find first occurence
for(i = 1, i <= N Items(UniqueLotNums), i++,
SR = dt << Select Where(:LOT# == UniqueLotNums[i]) << Get Selected Rows;
dt << Clear Select ;
SaveList = SaveList || SR[1];
);
// New Column
NewCol = As List(J(N Rows(dt),1,"0"));
NewCol[SaveList,0] = LotNums[SaveList];
dt << New Column("test",character,nominal,<< Set values(NewCol));Re: If / Then scriptingSÌ! Questo e 'esattamente quello che stavo cercando!
Grazie!
Re: If / Then scriptingSe capisco la tua domanda e se i tuoi lotti si trovano tutti insieme, allora questo codice funzionerà
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where( :name( "LOT#" )[Row()] != Lag( :name( "LOT#" )[Row()] ) );
dtNew = dt << subset( selected columns( 0 ), selected rows( 1 ) );
Re: If / Then scriptingPrima deve essere ordinato per LOTTO #, ma tu hai quello. Quindi il codice è:
dt = Current Data Table();
dt << (select where( :LOT# != Lag( LOT# ) ));
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
La funzione Lag analizza il valore dell'osservazione precedente.