Betreff: Fehler in der Schleife, um numerische Spalten zu standardisierenWenn Sie einen Formelwert angeben, wird die JSL für die Formel nicht ausgewertet. Vielmehr wird nur der Code in die Formel verschoben. Was also in die Formel eingefügt wird, ist " Col Standardize ( : numericColNames [ ich ] ) ", nicht" Col Standardize ( : YourColumnName ) ". Wenn die Formel ausgeführt wird, sucht sie nach dem Wert von "i", der zum Zeitpunkt der Ausführung bereits über Ihren Indexbereich für Colnames hinausgeht. Sie müssen also die exakte JSL-Syntax für die Formel in die Formel einfügen.
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 1, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( __col__ ) )
)
),
Expr( __col__ ), Parse( ":" || numericColNames[i] )
)
)
);Fehler in der Schleife, um numerische Spalten zu standardisierenHallo. Ich habe ein Skript geschrieben, um neue numerische Spalten aus der Formel zu erstellen, um sie zu standardisieren. Bei der Auswertung der Formel wird jedoch eine Fehlermeldung angezeigt. Was mache ich falsch?
Vielen Dank.
Das Drehbuch:
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 1, i <= N Items( numericColNames ), i++,
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( :numericColNames[i] ) ) )
);
Der Fehler:
Name Unresolved: numericColNames 1 times At rows: {1} Operation: numericColNames, :numericColNames
Betreff: Fehler in der Schleife, um numerische Spalten zu standardisierenSehr geehrter Herr, ich habe einen kleinen Tisch zum Ausprobieren. Es besteht aus einer Spalte mit den Namen der Gemeinden, einer Spalte (1900) mit ganzzahligen Werten, die der Bevölkerung im Jahr 1900 entsprechen, und einer weiteren Spalte in Prozent. Wenn ich das scritp probiere finde ich das, obwohl die Anweisung "numericColNames" = dt << Spaltennamen erhalten ( Zeichenfolge , numerisch ) ; "erkennt die Spalte 1900 und" Prozentsatz Canvi "als Zahlen beim Erstellen der beiden neuen Spalten, diejenige, die 1900 entspricht, belässt sie mit fehlenden Werten.
Betreff: Fehler in der Schleife, um numerische Spalten zu standardisierenEin Spaltenname wie 1900 kann JMP verwirren, da er möglicherweise nicht weiß, ob er als Zahl oder Spaltenname behandelt werden soll. Daher muss man mithilfe der Funktion: Name () angeben, dass es sich um einen Spaltennamen handelt. Siehe das überarbeitete Skript unten
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
numericColNames = {"1900"}
For( i = 1, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( __col__ ) )
)
),
Expr( __col__ ), Parse( ":Name(\!"" || numericColNames[i] || "\!")" )
)
)
);Betreff: Fehler in der Schleife, um numerische Spalten zu standardisierenSir, Sie scheinen auf alles eine Antwort zu haben. Nochmals vielen Dank für Ihren Beitrag!