Hola todos,
después de crear una nueva columna Norm_Value Quiero aplicar la fórmula para calcular valores relativos basados en la posición de "1" en el Base_value_norm columna:
dt << New Column( "Norm_Value",
Numeric,
"Continuous",
formula(
Eval(
Eval Expr(
dt:Value[(:SerialNumber << get data table) << get rows where(
dt:Base_value_norm == 1 & dt:SerialNumber == Expr( dt:SerialNumber[Row()] )
)] / dt:Value
)
)
)
); El problema es que cuando intento ejecutar un script, aparece el siguiente error:
Número de fila no válido al acceder o evaluar "dt :: SerialNumber [/ * ### * / Row ()]", dt :: SerialNumber [/ * ### * / Row ()].
Pero si proporciono la fórmula manualmente después de crear la columna, funciona como se desea. ¿Cuál puede ser la razón por la que no funciona en script? Necesito hacer eso en el script ya que es necesario crear varias columnas nuevas de esa manera. Se adjunta la tabla de datos con la fórmula guardada.
Gracias y un saludo
¿Me estoy perdiendo algo o puedes simplificar la fórmula para
dt = :SerialNumber << get data table;
curSerialNumber = dt:SerialNumber;
dt:Value[dt << get rows where( dt:Base_value_norm == 1 & dt:SerialNumber == curSerialNumber )] / dt:Value;