Re: Error en bucle para estandarizar columnas numéricasCuando especifique un valor de fórmula, no realizará ninguna evaluación de la JSL para la fórmula. Más bien, simplemente moverá el código a la fórmula. Entonces, lo que se está colocando en la fórmula es " Col estandarizar ( : Números de nombre numéricos El yo ] ) ", no" Col estandarizar ( : SuColumnName ) ". Entonces, cuando se ejecute la fórmula, buscará el valor de "i", que en el momento en que se ejecuta, ya se ha movido más allá del rango de subíndices de Colnames. Entonces, lo que hay que hacer es colocar la sintaxis JSL exacta para la fórmula, en la fórmula.
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] )
)
)
);Error en el bucle para estandarizar columnas numéricasHola. He escrito una secuencia de comandos para crear nuevas columnas numéricas a partir de la fórmula para estandarizar pero me sale un error al evaluar la fórmula. ¿Qué hago mal?
Gracias.
La secuencia de comandos:
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] ) ) )
);
El error:
Name Unresolved: numericColNames 1 times At rows: {1} Operation: numericColNames, :numericColNames
Re: Error en bucle para estandarizar columnas numéricasEstimado señor, tengo una pequeña mesa para probar. Consiste en una columna con nombres de municipios una columna (1900) con valores enteros correspondientes a la población en 1900 y otra columna expresada en porcentajes. Cuando pruebo el scritp encuentro que, aunque la instrucción "numericColNames = dt << obtener nombres de columna ( cuerda , numérico ) ; "reconoce la columna 1900 y" Porcentaje Canvi "como valores numéricos al crear las dos nuevas columnas, la que corresponde a 1900 lo deja con valores faltantes.
Re: Error en bucle para estandarizar columnas numéricasUn nombre de columna como 1900 puede confundir a JMP, porque puede que no sepa si debe tratarlo como un número o un nombre de columna. Por lo tanto, uno debe indicar específicamente que se trata de un nombre de columna mediante la función: Nombre () ... consulte la secuencia de comandos modificada a continuación.
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] || "\!")" )
)
)
);Re: Error en bucle para estandarizar columnas numéricasSeñor, parece que tienes una respuesta para todo. Gracias de nuevo por tu contribución!