JSL-Skripter für Anfänger hier...
Ich möchte ein Skript erstellen, das alle Zeilen löscht, in denen Daten in einer Spalte fehlen.Wenn ich jetzt die Spalte(n) umbenenne, funktioniert das so:
clean_dt << selectWhere(IsMissing ( :THK ) ) << deleteRows ;
Das Problem besteht darin, dass ich möchte, dass dieses Skript dynamisch ist und in der Lage ist, jeden Namen für jede Spalte, die ich ihm gebe, zu verarbeiten und beispielsweise anhand der Spaltennummer darauf zu verweisen. Nehmen wir an, der Spaltenname ist so komplex
Schritt::Messung::Daten::THK:Raw (Mittelwert)
Ich möchte meine Spalten nicht jedes Mal umbenennen müssen ... Ich habe mehrere Iterationen von Dingen ausprobiert, von denen ich denke, dass sie funktionieren „sollten“, aber sie gefallen mir nicht
clean_dt << selectWhere(IsMissing( Spalte(8) )) << deleteRows ;
ODER
clean_dt << selectWhere(IsMissing(: Schritt::Daten ::THK:Raw (Mittelwert) )) << deleteRows ; (Spaltenname ist zu komplex mit Sonderzeichen)
Jedes Mal kommt es zu einem Fehler mit dieser Meldung
Das Argument sollte numerisch sein{1} beim Zugriff oder bei der Auswertung von „Ist fehlt“, „Ist fehlt/*###*/(Spalte( 8))“
Wenn Sie die Nachricht „Wo auswählen“ verwenden, müssen die Kriterien auf der aktuellen Zeile basieren, da JMP jede Zeile prüft, um zu sehen, ob die Zeile die Kriterien erfüllt.
Da die Column-Funktion tatsächlich einen Verweis auf die gesamte Spalte zurückgibt, müssen Sie bei Verwendung der Column-Funktion in Ihrer Select Where-Nachricht einen Index in die aktuelle Zeile einfügen. Dies kann durch Subskription von [Row()] oder kurz [] erfolgen. Siehe unten.
dt << Select where( Is Missing( Column( 8 )[] ) );
Wenn Sie einen Spaltennamen mit Sonderzeichen verwenden möchten, können Sie den Namensparser mit einer Zeichenfolge des Spaltennamens verwenden. Wenn diese Zeichenfolge eine Variable sein muss, müssen Sie stattdessen die Column-Funktion verwenden.
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
ODER
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );