사용자 입력으로 적합한 모델을 얻으려고합니다.나는 Y가 무엇인지 알고 그들이 gen reg를하기를 원하기 때문에 맞는 모델로 사용자를 돕고 싶다고합시다. 그래서 나는 그들에게 이것을줍니다.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
);
차갑고 적합 함 = 모델 대화 상자. 그러나 모달이 아니므로 스크립트가 계속 실행됩니다. 또한 푸시 런을 수행하면 맞춤이 삭제됩니다.
내가 정말로 원하는 것은 사용자가 물건을 입력 한 다음 보고서가 완료되면 계속 진행하는 것입니다.
나는 이런 식으로하려고하지만 운이 없었습니다.
while(
obj = current report()[OutlineBox(1)] << Get Scriptable Object();
!(char(obj) == "Fit Generalized[]" & try(obj[1] << Get Prediction Formula; 1, 0));
,
wait(.3);
);
나는 정말 모든 옵션을 사용하여 전체 UI를 다시 빌드 할 필요는 없습니다. 특히 효과가 간단하지 않기 때문입니다.
다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다.나는 이런 식으로 할 수는 있지만 이것을 깨는 수천 가지 방법이 있고 실제로 더 견고한 것을 기대하고 있습니다.
while(
obj = current report()[OutlineBox(1)] << Get Scriptable Object();
!(char(obj) == "Fit Generalized[]");
,
wait(.3);
);
btn_go_real = report(obj)[Buttonbox(1)];
report(obj)[1] << Append(Buttonbox("MyGo",
<<SET function=""></SET>다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다.도움이 될만한 일이 있습니까? 모달 창이며 출력 디스플레이 트리를 캡처 할 수 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
nw = New Window( "example",
<<MODAL></MODAL>
다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다.두 번째 창 때문에 실제로는 아닙니다.
다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다.나는 이런 종류의 접근법을 몇 번 전에 사용했다.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
);
// The 'Run' button
runButton = Report(fit)[ButtonBox(9)];
// Append to the in-built action of the button
runButton << setScript(doSomething);
// The 'Terms' shown in 'dt2' reflect the user selections made in teh launch dialog
doSomething =
Expr(
Beep();
fit2 = fit << run;
dt2 = Report(fit2)[tableBox(5)] << makeCombinedDataTable;
dt2 << setName("Parameter Estimates")
);다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다. vince , ian 나를 이길. 실제로 내 스크립트는 2 개의 기능 유지 대화 상자 열기를 사용한 다음 몇 년 전에 제공 한 실행 버튼에 스크립트를 추가하는 이안의 트릭을 사용합니다 (2018 년 8 월 21 일 근처). 내 doSomething은 모델을 데이터 테이블에 저장합니다.
이 기회를 사용하여 유용한 트릭과 Keep Dialog Open (Ian도 사용)에 대해 Ian에게 다시 감사드립니다. 실제로 코드를 잘라 붙여넣고 수정했습니다!
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Keep Dialog Open(1)
);
// Define a sample script
doSomething =
Expr(
Beep();
// For( i = 1, i <= N Table(), i++,
// Print( i, Data Table( i ) << getName )
// );
fit << Save to Data Table;
snames = dt << Get Table Script Names();
s = dt << get script( snames[N Items( snames )] );
Show( s );
);
// Assign the sample script to the button (JMP seems to prepend to the script that's already there?)
Report( fit )[Button Box( 9 )] << setScript( doSomething );
다시 : 사용자 입력으로 맞는 모델을 얻으려고합니다.감사 ian 과 gz 나는 Gen reg 플랫폼에서 Go를 누른 후 doSomething이 실제로 작업하기를 원했기 때문에 기본적으로 두 번 수행했습니다. 또한 지역 변수 가이 방법으로 아무것도 깨지지 않도록하기 위해 기능화했습니다.
내 "My_Gen_Reg"함수가 "doSomething"에서 값을 반환하도록하려면 과거에 얻을 수 없었던 또 하나의 질문이 있습니다. 다시 말하지만 전역 또는 여기를 사용하지 마십시오.
* 편집 *, 작동하는 것으로 보이는 스톱 갭 솔루션이 있습니다. 그래도 여전히 작동하는 방식이 마음에 들지 않습니다. 그래도 UI를 다시 만드는 것보다 낫습니다.
Names default to here(1);
my_Gen_Reg = Function({dt},
{fit, pf_get},
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
//Keep Dialog Open(1)
);
Report( fit )[Button Box( 9 )] << Set Function(
Function({self},
{fit_self, fit2},
fit_self = ((self << Top Parent)[OutlineBox(1)]<<GET scriptable="" object=""></GET>