안녕하세요 여러분,
JSL을 사용하여 보고서 창에 <<시뮬레이트 명령을 전달할 때 열을 올바르게 참조하는 데 문제가 있습니다.
내가 어려움을 겪고 있는 코드 섹션은 다음과 같습니다.
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( Eval( YCols ) ),
In( :Simulated Y )
);
해당 코드 섹션을 실행하면 다음 오류가 발생합니다. 전환할 열을 찾을 수 없습니다. 그런 다음 전환할 열을 선택해야 하는 창이 팝업됩니다.
Report_of_interest는 Simulate 명령을 보내는 보고서 창입니다. 특히 보고서의 Estimate 열인 NumberColBox(8)에 해당됩니다. NBSnum 및 RSnum은 실행할 부트스트랩 샘플 수와 임의 시드 변수입니다. 문제는 Simulate( ) 명령의 Out( )에 있는 열 이름입니다. In( ) 열은 시뮬레이션된 데이터 열의 이름을 원하는 대로 지정할 수 있으므로 문제가 되지 않지만 Out( ) 옵션의 열은 실제로 이름을 바꾸려는 열이 아닙니다. 이 경우 시뮬레이션된 데이터를 데이터 테이블에 저장하고 열 이름을 "Simulated Y"로 변경하여 Simulate 명령에서 필요에 따라 In(:Simulated Y)로 참조할 수 있습니다.
코드 앞부분에서는 모델링을 위한 응답 열이 될 열(YCols)을 선택하라는 메시지가 사용자에게 표시되며 플랫폼에서 열을 처리할 때 Eval(YCols)로 사용할 수 있는 경우가 많습니다. 예를 들면 다음과 같습니다.
fm = avdt << Fit Model(
Y( Eval( YCols ) ),
Validation( :Validation ),
Effects( :Null Factor, Eval( XCols ) ),
Personality( "Generalized Regression" ),
Run( Fit( Estimation Method( Forward Selection ), Validation Method( Validation Column ) ) )
);
Y( ) 열에서 적합 모델을 올바르게 실행합니다. 그러나 Simulate( ) 명령은 범위가 지정된 열로 참조되는 열을 원합니다. 예를 들어 :My Column To Model과 같습니다.
열 이름이 "My Column To Model"이므로 YCols 및 Eval(YCols) 변수는 모두 다음 {"My Column To Model"}을 반환한다고 가정해 보겠습니다. 시뮬레이션 명령을 보고서로 보낼 때 다음과 같이 범위가 지정된 열 이름이 필요합니다.
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :My Column To Model ),
In( :Simulated Y )
);
문제는 내가 모델링하는 열이 변경될 수 있으므로 이름이 변경된다는 점입니다. 열 이름을 항상 :YData와 같은 고정된 이름으로 바꾸고 싶지는 않습니다. YCols와 같은 변수로 작업하고 싶지만 Simulate( ) 명령에 대한 올바른 열 참조를 갖기 위해 중위 콜론 연산자(:) 및 YCols와 같은 변수로 작업하는 방법을 모르겠습니다.
As Column(dt, name), Column(dt, name), Column(number), Parse(":"||char(Column(avdt, Eval(YCols)))), Parse(":" ||Eval(YCols)[1]), 그 중 어느 것도 작동하지 않습니다. 모두 위에서 언급한 것과 동일한 오류가 발생하고 In/Out을 교환할 열을 선택하기 위한 새 창을 엽니다. 이는 제가 수행하려는 자동화를 무효화합니다.
어떤 도움이라도 대단히 감사하겠습니다.
감사해요!,
DS