이동 평균 수식을 사용하여 열을 만드는 For 루프저는 jmp를 처음 사용하는 초보자로, 스프레드시트에서 큰 데이터 세트로 옮기려고 합니다. 데이터 열(xV-C)에 대한 다양한 이동 평균을 계산하기 위해 일련의 열을 만들려고 합니다. 열을 만드는 데 필요한 대부분의 코드는 있지만, 각 생성된 열의 수식은 각 열에 대한 for-loop 값(10, 11, 12...) 대신 for-loop 변수(j)를 사용합니다. Eval과 Parse로 뭔가 해야 할 것 같지만, 알아낼 수가 없습니다. 지금까지 제가 한 것은 다음과 같습니다.
j=10,j<=12,j++에 대하여,
새로운 열("xF-C MA " || Char(j), 숫자, 수식(Col 이동 평균( :"xV-C"n, 1, j-1 )))
);
누군가에게는 쉬운 문제일 거라고 확신해요! 도와주셔서 감사합니다!
자동화 및 스크립팅윈도우Re: 이동 평균 공식을 사용하여 열을 만드는 For 루프커뮤니티에 오신 것을 환영합니다
수식에 지정된 변수 "J"와 JSL에서 해당 값을 변경하면 변수가 있는 열은 "J" 값이 변경됨에 따라 변경됩니다. 이를 수정하려면 수식이 JMP에 지정될 때 변수 "J"의 값을 평가해야 합니다.
Eval(EvalExpr())은 JMP가 코드를 구문 분석하기 전에 평가를 강제로 실행합니다.
이것을 시도해보세요
For( j = 10, j <= 12, j++,
Eval(
Eval Expr(
New Column( "xF-C MA x " || Char( j ),
Numeric,
Formula( Col Moving Average( :"xV-C"n, 1, Expr( j - 1 ) ) )
)
)
)
);
Re: 이동 평균 공식을 사용하여 열을 만드는 For 루프저는 Eval+EvalExpr을 사용하는 것을 좋아하지만, 가끔은 읽기가 더 쉬운(항상은 아니지만!) Eval+Substitute라는 또 다른 좋은 옵션이 있습니다. 여러분의 경우에는 다음과 같을 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For(j = 10, j <= 12, j++,
Eval(Substitute(
Expr(
dt << New Column("height " || Char(j), Numeric, Formula(Col Moving Average(:height, 1, _lag_)))
),
Expr(_lag_), j - 1
));
);
이 주제와 관련된 좋은(오래된) 게시물 Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 하나의 표현식을 다른 표현식에 삽입합니다.
Re: 이동 평균 공식을 사용하여 열을 만드는 For 루프완벽해요! 고맙습니다!