여보세요,
사용자가
- 모델에 맞출 열 선택
- 1차 변수 식별 및 목표 값 지정
- 모델을 분할할 열을 식별합니다.
- JMP가 모델을 생성하고 의도한 목표를 달성하도록 바람직함을 최적화한 다음 모델 결과를 출력하도록 허용합니다.
- 편리한 출력 테이블에서 결과 복사
사용자 입력이나 선택을 허용하지 않고 원하는 작업을 수행하는 기능적 스크립트가 있지만 스크립트를 대화식으로 만드는 것은 어려웠습니다. 나는 대부분 거기에 있다고 생각하지만, 내가 어려움을 겪고 있는 몇 가지 특정 사항이 있습니다.
- 질문 1: 이 스크립트의 이전 버전에서는 While( x == "y[i]") 줄이 있는 for 루프를 사용하여 각 모델에 대해 다른 창을 사용했습니다. By( :x )가 더 유연하고 하나의 출력 창을 제공하기 때문에 차라리 사용하겠습니다. 그러나 By( :x )를 사용하면 이후 스크립트가 중단되어 보고서에서 스크립팅 가능한 개체를 가져옵니다. 모델 창의 각 하위 상자에 대해 다른 보고서를 만들 수 있습니까? 아니면 173-181행을 코딩하는 더 좋은 방법입니까? 다른 두 스레드를 기반으로 해당 줄을 작성합니다. 스레드 1 , 스레드 2 .
- 질문 2: 선호도 함수 없이 모델링된 가변 숫자 효과를 가질 수 있는 옵션이 필요합니다(나중에 전체 스크립트에도 최소화된 효과가 있지만 이 단순화된 데모 스크립트는 너무 복잡해졌습니다. 122-126행에서 ModExpr에서 원하는 표현식을 생성할 수 있지만 목록이기 때문에 프로필에 직접 대체하려고 할 때 작동하지 않았습니다. 내 해결 방법은 내가 모델링할 것으로 예상되는 변수의 수보다 많은 자리 표시자를 가지고 있으며, 6개 미만의 모델링 효과가 있는 경우 코드가 말도 안 되는 부분을 무시하는 것 같습니다... 하지만 이것은 매우 버벅거리는 것 같습니다. 목록이 작동하는 단일 표현식으로 결합되도록 130-134행의 주석 처리된 코드를 수정하는 방법이 있습니까? Concatenation도 멋지게 플레이할 수 없었지만, 내가 놓친 간단한 것이 있을 것입니다.
다음은 샘플 데이터를 사용하는 샘플 스크립트입니다. 모델은 적합하지 않지만 데모에서는 그다지 중요하지 않습니다. 실행할 때 "by"에 대한 선택을 취소하면 모든 것이 정상적으로 실행되고 결과가 출력됩니다. "by" 섹션에 아무 것도 남아 있지 않으면 174행이 끊어집니다.
도움을 주셔서 감사합니다!
Names Default To Here( 1 );
//sample data for demo
dt = Open( "$SAMPLE_DATA/Football.jmp" );
xvar = {};
yvar = {};
byvar = {};
ytarg = 60;
dtout = {};
//let users select the columns to model
win = New Window( "Model Variable Selection",
<<MODAL></MODAL>