Wenn / Dann ScriptingHallo Gruppe, ich hoffe, dass jemand da draußen helfen kann!
Ich bin auf der Suche nach einer Codierung, mit der ich dann filtern kann.
In der angefügten Datentabelle gibt es verschiedene Chargennummern mit mehreren SampleIDs unterschiedlicher "Geschmacksrichtungen".
Das Ziel ist folgendes:
Wenn die LOT # die erste Instanz ist, wird sie ausgewählt. Wenn die nächste Zeile gleich ist, wird sie übersprungen und so lange übersprungen, bis eine neue LOT-Nummer angezeigt wird.
Diese neue erste Instanz der nächsten LOT-Nummer wird ausgewählt. Und weiter so.
Ich möchte, dass diese ausgewählten Zeilen in eine neue Datentabelle eingefügt werden.
Ich hoffe, dass jemand weiß, ob das möglich ist. JMP kann alles, also bin ich mir sicher, ich weiß einfach nicht wie.
Vielen Dank!
Re: Wenn / Dann Scripting @kwmcm .
Vielleicht so etwas
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: Wenn / Dann ScriptingJA! genau das habe ich gesucht!
Vielen Dank!
Re: Wenn / Dann ScriptingWenn ich Ihre Frage verstehe und Ihre Lose alle zusammen gefunden werden, funktioniert dieser Code
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: Wenn / Dann ScriptingEs muss zuerst nach LOT # sortiert werden, aber Sie haben das. Der Code lautet also:
dt = Current Data Table();
dt << (select where( :LOT# != Lag( LOT# ) ));
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
Die Lag-Funktion betrachtet den Wert aus der vorherigen Beobachtung.