creando nuevas columnas con un bucle for con nombres de columna y fórmulaEstoy tratando de crear una tabla dividida a partir de una tabla existente y agregar nuevas columnas a las tablas divididas, cada una con una fórmula basada en las columnas que se dividieron. Sin embargo, el código crea las nuevas columnas pero me da "Errores de evaluación de fórmula"
dt2 = Current Data Table();
// Create the split data table
dt2 = dt << Split(
Split By( :S ),
Split(
:Name( "Median(data)" )
),
Group( :L, :m, :C, :P, :z, :x ),
Remaining Columns( Drop All ),
Sort by Column Property
);
colname = {"B","C"};
colby = {"A","B"};
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
dt2 << New Column( colname[i]||"/"||colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( column(colname[i]) / column(colby[i]) )
););Automatización y secuencias de comandosRe: crear nuevas columnas con un bucle for con nombres de columna y fórmulaLa definición de fórmula JMP no se evaluará cuando se defina, solo cuando se ejecute.Por lo tanto, la fórmula debe presentarse a JMP en una forma completamente definida.
Column( colname[i] ) / Column( colby[i] )
debe presentarse a JMP como
Column( "B" ) / Column( "A" )
El uso de la función Sustituir permite la expansión del código según sea necesario
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
Eval(
Substitute(
Expr(
dt2 << New Column( colname[i] || "/" || colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Column( __colname__ ) / Column( __colby__ ) )
)
),
Expr( __colname__ ), colname[i],
Expr( __colby__ ), colby[i]
)
)
);Re: crear nuevas columnas con un bucle for con nombres de columna y fórmulaSigo recibiendo el mismo error, como se muestra a continuación.
Column B/A Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "B" ) / /*###*/Column( "A" ) /*###*/
Formula evaluation errors have been ignored
Column C/B Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "C" ) / /*###*/Column( "B" ) /*###*/
Formula evaluation errors have been ignored
Re: crear nuevas columnas con un bucle for con nombres de columna y fórmulaIntente cambiar la función Column() a la función As Column()
Re: crear nuevas columnas con un bucle for con nombres de columna y fórmula¡Eso funcionó, gracias!