大家好,
创建新列后标准值我想应用公式来计算基于“1”在Base_value_norm柱子:
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
)
)
)
); 问题是当我尝试执行脚本时出现以下错误:
访问或评估 "dt::SerialNumber[ /*###*/Row()]" 时无效的行号,dt :: SerialNumber[/*###*/Row()]。
但是如果我在创建列后手动提供公式,它会按需要工作。 它在脚本中不起作用的原因是什么? 我需要在脚本中这样做,因为我需要以这种方式创建几个新列。 附有保存公式的数据表。
感谢你并致以真诚的问候
我是不是遗漏了什么,或者你能把公式简化成
dt = :SerialNumber << get data table;
curSerialNumber = dt:SerialNumber;
dt:Value[dt << get rows where( dt:Base_value_norm == 1 & dt:SerialNumber == curSerialNumber )] / dt:Value;