<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe Probleme, diese Logik zu korrigieren, und ich bin mir nicht sicher, wo ich falsch liege. Ich möchte ein Skript haben, in dem der Operatorname in Zeile i mit dem Operatornamen in Zeile (i-1) identisch ist. Wenn der Messwert in Zeile i fehlt, geben Sie ihn mit dem Messwert in Zeile ein (i-1). Ich habe mehrere Messwerte, also suche ich Spalten nach Spalten mit "Meas" im Namen.
Bisher habe ich das folgende Skript, aber es funktioniert einfach nicht und ich bin mir nicht sicher, warum ..
(auch ich bin neu im forum. Wie bekomme ich den Code, um die Formatierung beizubehalten, wenn ich ihn kopiere?)
dt = aktuelle Datentabelle ();
für (j = 1, j <= ncols (dt), j ++,
colname = Spalte (j) << getname ();
Wenn (Enthält (Colname, "Meas")> 0,
für (i = 2, i <= Reihen (dt), i ++,
if (Spalte ("OperatorName") == Spalte ("OperatorName") [i-1],
if (Spalte (j) == isMissing (),
Spalte (j) = Spalte (j) [i-1]; // setze gleich Zeile oben
);
);
);
);
);
Der einzige Fehler, den ich finden kann, ist die Verwendung von Is Missing (). Betrachten Sie es als Funktion und nicht als Wert.
Ob ( Wird vermisst ( Säule ( j ) [ ich ] ) , ...