여러분 모두에게,
수식인 새 열을 만들고 JSL 스크립트 내에서 변수를 보내는 데 문제가 있습니다.
열의 평균 지연을 계산하려는 날짜 테이블이 있습니다. 관심 있는 열이 항상 행별로 균등한 간격으로 배치될 필요는 없으며 지연이 때때로 변경될 수 있습니다. 그러나 내 스크립트의 목적에 따라 전체 열의 평균 지연만 살펴보는 것도 괜찮습니다.
내가 이 작업을 수행하려고 했던 방식(수동으로 수행할 수도 있지만 스크립트를 사용하여 자동화하는 것이 더 나음)은 :X의 Lag 열을 생성한 다음 :X-:Lag(X)의 차이를 취하는 것입니다. Col은 그 말을 의미합니다. 공식(수학)은 다음과 같아야 합니다.
ave_lag = 열 평균(:X-:Lag(X))
내가 겪고 있는 문제는 Lag 수식이 포함된 새 열을 만드는 것입니다. 스크립트를 평가하려고 할 때마다 의도한 열 이름이 아닌 내가 작성한 내용의 리터럴 텍스트가 수식에 배치됩니다. dt<
나는 또한 Eval(Substitute(Expr()))을 시도했지만 문자 그대로 :X와 같은 참조로 열이 아닌 인용된 문자열을 넣습니다.
예를 들어, 제가 작업 중인 테이블에서 다음 코드를 시도했습니다.
Eval(
Substitute(
Expr(
dt << New Column( "temp", Formula( Lag( __tcols__ ) ) )
),
Expr( __tcols__ ), xcols[1]
)
);"temp" 열이 생성되지만 공식은 다음과 같습니다.

열 이름은 t이고 변수 xcols={"t"}입니다. 수식은 열 이름이 아닌 열에 대한 참조인 Lag(:t)와 같아야 합니다.
나는 이 다른 코드를 시도하여 :t의 열 번호(데이터 테이블 내에서 변경될 수 있음)를 추출한 다음 수식에 열(#)을 삽입했지만 이 또한 작동하지 않습니다.
collist = dt << Get Column Names( string ); //creates a list of the column names
colnum = Loc( collist, xcols[1] )[1]; //locates the position in the list of the script variable xcols[1].
//This previous part basically gets the column number of the local variable xcol in the data table (it can change).
//This is the script where I'd like it to substitute
Eval(
Substitute(
Expr(
dt << New Column( "temp", Formula( Lag( Column( __tcols__ ) ) ) )
),
Expr( __tcols__ ), colnum
)
);"temp" 열도 생성되지만 공식은 다음과 같습니다.

나는 이것이 내가 알아내는 것보다 쉬울 것이라고 생각했지만 내가 기대했던 결과를 얻지 못하기 때문에 뭔가 잘못되었거나 이상한 일을 하고 있는 것이 분명합니다.
열의 평균 지연을 계산하는 방법에 대한 제안을 주시면 감사하겠습니다. 단일 숫자만 필요하며 궁극적으로 추가 열이 필요하지 않습니다.
감사해요!,
DS