Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Wenn ich eine Tabelle teile, erhalte ich Zellen in mehreren Spalten mit fehlenden Werten.Ich möchte diese Werte auf 0 ändern.Die Anzahl der Zeilen und geteilten Spalten variiert je nach den Daten, die über eine SQL-Abfrage abgerufen werden.Wie kann ich diese ausgewählten Spalten durchlaufen und diese Änderung vom fehlenden Wert auf 0 vornehmen?
Danke
Betreff: Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Ich bin damit einverstanden, dass es in diesem Fall nicht notwendig ist, aber es ist ein äußerst nützliches Muster.Nehmen Sie ein beliebig komplexes Stück JSL.Insbesondere wenn es schwierig ist, die einzelnen Komponenten zu parametrisieren.Klammern Sie Ihre Variablen mit Caret-Zeichen (^var^) ein und fügen Sie die gesamte Menge in ein „ ein. „Eval-Parse-Eval Insert“-Muster.Problem gelöst.
Betreff: Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Danke, Thomasz.Funktioniert super!!
Betreff: Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Das geht in drei Schritten per Hand:
Wählen Sie die Spalten aus
Wählen Sie „Attribute standardisieren“ und dann „Neu kodieren“.
Alle .s auf 0 umkodieren.
Wenn Sie es per JSL machen möchten, könnten Sie es so machen:
dt=current data table();
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
column(dt,colnames[i])[dt<<GET rows="" where=""></GET>
Herzliche Grüße, Thomas
Betreff: Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Hier ist die gleiche Idee wie @cwillden aber ohne Eval(Parse()) verwenden zu müssen
Names Default To Here( 1 );
dt = Current Data Table();
numericColumnNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( numericColumnNames ), i++,
Try(
Column( dt, numericColumnNames[i] )[dt << get rows where(
Is Missing( (As Column( dt, numericColumnNames[i] )) )
)] = 0
)
);
Betreff: Wie verwende ich JSL, um den Wert in Zellen mit fehlenden Werten auf Null zu ändern?Versuchen Sie etwas wie Folgendes:
dt = Current Data Table();
cols = dt << Get Selected Columns();
For( i = 1, i <= N Items( cols ), i++,
Eval( Parse( Eval Insert( "^cols[i]^[dt << Get Rows Where(Is Missing(^cols[i]^))] = 0" ) ) )
);
Am Ende habe ich den Eval-Parse-Eval-Einsatz verwendet, weil der Is Missing-Funktion etwas wie Is Missing(cols[i]) oder Is Missing(Column(cols[i])) nicht gefiel.Die Verwendung des Eval-Parse-Eval-Einsatzes fühlt sich immer ein bisschen wie ein Hack an, aber Sie erhalten damit das, was Sie brauchen.