모두들 안녕,
새 열을 만든 후 규범_값 수식을 적용하여 "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;