안녕하세요 여러분,
하나의 Expr1()에서 정상적으로 평가되는 변수가 첫 번째 Expr을 호출하는 다른 Expr2()에서 올바르게 평가되지 않는 데 어려움을 겪고 있습니다. 관심 있는 열의 분포를 생성하는 Expr1()을 정의한 코드가 있습니다. 나중에 Expr1()을 다시 호출하는 Expr2()라는 또 다른 표현식이 있습니다. Expr2()에서 제대로 평가되지 않는 것처럼 보이는 변수가 Expr1()에 있습니다.
시각적 개체의 경우 Expr2()는 다음과 같은 창을 생성합니다.

첫 번째 표현식인 Expr1()은 그래프 빌더 아래에 포함된 배포 플랫폼을 생성합니다. 분포 아래의 콤보 상자와 버튼 상자를 사용하면 사용자가 다양한 R^2, RMSE, 평균 절대 편차, -Logliklihood 등과 같은 다양한 맞춤 통계 간에 전환할 수 있습니다. 이에 따라 GB와 분포를 모두 업데이트하려는 의도입니다. GB는 적절하게 업데이트되지만 배포판은 그렇지 않습니다. 예를 들어 Fit Statistic을 RMSE로 변경하면 결과는 다음과 같습니다.

분포 그래프를 업데이트하지만 Expr1() 내에서 설정한 크기 설정이 아닌 기본 크기 설정을 사용합니다. 분포 그래프의 크기가 첫 번째 이미지와 같은 경우 다음과 같이 보일 것입니다.

배포판이 생성되는 Expr1()의 코드 섹션은 다음과 같습니다.
//this part gets column names to insert into Dispatch() below<BR />sfitcol1 = Column( NNYCol + NNcolshift ) << Get Name;
sfitcol2 = Column( NNYCol + 1 + NNcolshift ) << Get Name;
sfitcol3 = Column( NNYCol + 2 + NNcolshift ) << Get Name;<BR /><BR />//in this example, the results are:<BR />//"RMSE Training"<BR />//"RMSE Validation"<BR />//"RMSE Test"
<BR />//this part generates the Distributions that will be used to change my output report in Expr2()
dt_results << Distribution(
Continuous Distribution( Column( Eval( NNYCol + NNcolshift ) ), Quantiles( 0 ) ),
Continuous Distribution( Column( Eval( NNYCol + 1 + NNcolshift ) ), Quantiles( 0 ) ),
Continuous Distribution( Column( Eval( NNYCol + 2 + NNcolshift ) ), Quantiles( 0 ) ),
SendToReport(
Dispatch( {sfitcol1}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol1}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} ),
Dispatch( {sfitcol2}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol2}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} ),
Dispatch( {sfitcol3}, "Distrib Histogram", FrameBox, {Frame Size( 60, 100 )} ),
Dispatch( {sfitcol3}, "Distrib Outlier Box", FrameBox, {Frame Size( 30, 100 )} )
)
);Expr1()을 자체적으로 실행하면 잘 작동합니다. 문제는 Expr2()가 Expr1()을 호출할 때 Dispatch에서 sfitcol# 변수를 평가하지 않기 때문에 실패하므로 FrameBox 크기가 변경되지 않는다는 것입니다. 코드에서 예상되는대로.
배포판을 교체하는 Expr2()의 코드 섹션(콤보 상자만 사용)은 다음과 같습니다.
NNycb = Combo Box(
NNylist,
<<SET></SET>
콤보 상자 함수에 Expr1() 부분을 넣고 sfitcol 변수를 실행한 후 프레임 상자를 수정하기 위해 보고서로 보내면 포함된 로그에 다음 오류가 발생합니다.
개요 컨텍스트 {sfitcol1}에서 "sfitcol1" 항목을 찾을 수 없습니다.
개요 컨텍스트 {sfitcol1}에서 "sfitcol1" 항목을 찾을 수 없습니다.
개요 컨텍스트 {sfitcol2}에서 "sfitcol2" 항목을 찾을 수 없습니다.
개요 컨텍스트 {sfitcol2}에서 "sfitcol2" 항목을 찾을 수 없습니다.
개요 컨텍스트 {sfitcol3}에서 "sfitcol3" 항목을 찾을 수 없습니다.
개요 컨텍스트 {sfitcol3}에서 "sfitcol3" 항목을 찾을 수 없습니다.
예를 들어 첫 번째 Dispatch: Send to Report(Dispatch({"RMSE Training"}, "Distrib Histogram", Framebox, Frame Size{(60,100)})를 사용하여 열 이름을 수동으로 입력하면 변경됩니다. 그에 따라 프레임 상자.

따라서 가능하며 Expr1()에서 항목을 정의한 방법을 통해 작업해야 하지만 Expr2()에서 항목을 실행할 때 변수의 값(텍스트)이 아닌 변수가 전달됩니다. 이 문제를 해결하는 방법에 대한 몇 가지 제안을 받기를 바랍니다. Eval(Substitute(Expr())) 유형 솔루션을 사용할 필요는 없다고 생각하지만 아마도 그렇게 할 것입니다.
어떤 생각/아이디어/제안이라도 주시면 감사하겠습니다.
감사해요!,
DS