Hallo alle,
Ich arbeite mit einem Excel-Datensatz, in dem mehrere Zeilen (Batches) für einen einzelnen Arbeitsauftrag und einen einzelnen Ertrag zusammengeführt werden. Sobald Sie sich in JMP befinden, werden die Zusammenführungszellen geteilt und jede Zeile außer der Ertrags- und Ausschussspalte wird mit den korrekten Werten für jeden Arbeitsauftrag ausgefüllt.
Ich muss die fehlenden Werte mit dem Ertragswert für diesen Arbeitsauftrag auffüllen. Ich habe eine Beispieldatentabelle beigefügt.
Ich kann dies tun, indem ich eine neue Spalte erstelle und eine bedingte Anweisung mit Verzögerung verwende, aber ich möchte dies ohne eine neue Spalte tun.
// example of populating missing values with new column
dt << new column("test", numeric, continuous, set each value(if( :WorkOrder == lag(:WorkOrder,1)& is missing(:yield),:yield= lag(:yield,1),:yield)));Mein erster Gedanke war, eine for-Schleife zu verwenden, aber ich habe Probleme. Das folgende Skript wird ausgeführt, füllt jedoch keine Daten anstelle der fehlenden Werte aus. Könnte jemand bitte einen besseren Weg vorschlagen, dies zu tun?
dt = current data table();
n=nrows(dt);
for(i=0,i<=n, i++,
if( :workorder == lag(:workorder,1)& is missing(:yield),:yield= lag(:yield,1),:yield)
);
Vielen Dank, das funktioniert einwandfrei.
In einem Skript mit einer For()-Schleife müssen Sie die Zeile mit einem Index angeben.Siehe unten
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 2, i <= N Rows( dt ), i++,
If( :workorder[i] == :workorder[i - 1] & Is Missing( :yield[i] ),
:yield[i] = :yield[i - 1]
)
);