<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, 사용자 지정 열 할당을 기반으로 보고서 및 관련 통계에 비상 계획 테이블을 만드는 동적 스크립트를 만들려고합니다. JSL에서의 첫 번째 시도이기 때문에 절대 초보자입니다. 나는 사용자 폼과 테이블 생성 작업을하고 있지만 카파 통계의 십진수 형식을 설정하는 것과 같은 간단한 작업을 수행하기 위해 생성 된 보고서의 다른 부분을 참조하는 방법을 이해하는 데 어려움을 겪고 있습니다. 결국 나는 또한 표시되는 contingency 테이블에서 값을 추출하여 계산을 수행하고 결과를 보고서의 다른 곳에 표시 할 수 있기를 원합니다. 나는 아래 첨자에 대해 읽고 있었고 그 개념을 보고서에 파고 들려고했지만 그것들을 올바르게 사용하는 방법을 알 수는 없습니다. 사용자가 2 열에서 10 열까지를 선택할 수 있기 때문에이 개념을 잘 이해해야한다는 것을 알고 있습니다. 따라서 스크립트는 1에서 25까지의 우발적 인 테이블을 생성 할 수 있습니다.이 모든 테이블은 추적하고 참조해야합니다. 후에. 그래서 각각에 변수를 할당하는 것이 가장 좋을지 모르겠지만, For 루프와 같은 것을 사용하는 대신 JMP에 의해 테이블의 빌드가 자동화되기 때문에이를 이해할 수 없습니다. 어떤 도움이라도 대단히 감사합니다. 나는 또한 학습 목적을 위해 내 구체적인 질문 (예 : 모범 사례 등)과 무관 한 JSL 스크립팅에 대한 의견을 환영합니다.
내가 고민하는 부분은 / * ------ * /로 주석 처리 된 부분이다. 과도한 논평에 대해 유감스럽게 생각하지만 내 첫 번째 스크립트가되어서 나는 내 미래의 자신을 되돌아 볼 수있는 개념을 포착하려고 노력하고있다. Windows 7에서 JMP 10.0.1 릴리스 2를 사용하고 있습니다. JMP에서 샘플 데이터 세트를 찾을 수 없습니다. JMP에서 일반적으로 사용하고있는 샘플 데이터 세트는 미니어처 버전입니다.
| 샘플 ID | 분석 # 1 | 분석 # 2 | 참고 |
| 307HV093 | 부정 | 부정 | 부정 |
| 307HV093 | 부정 | 부정 | 부정 |
| 307HV094 | 양 | 양 | 양 |
| 307HV094 | 양 | 양 | 양 |
| 307HV095 | 양 | 양 | 양 |
| 307HV095 | 양 | 양 | 양 |
| 307HV096 | 양 | 양 | 양 |
| 307HV096 | 양 | 양 | 양 |
| 307HV097 | 부정 | 부정 | 부정 |
| 307HV097 | 부정 | 부정 | 부정 |
| 307HV098 | 부정 | 부정 | 부정 |
// "표시 트리 만들기"를 기초로 JMP 10 용 JMP 스크립팅 가이드의 363 페이지
명확한 전역 () ;
기본 이름은 여기에있다. ( 1 ) ; // 범위가 지정되지 않은 변수는 모두 지역 변수입니다.
만약 ( 비었다 ( dt = 현재 자료 ()) , dt = 열다 ( 픽 파일 ( "입력 데이터 파일 선택 :" )))) ;
// savedir = pickdirectory ( "요약 파일의 대상 폴더 선택 :"); // 나중에 사용
dt = currentDataTable () ; 노스 캐롤라이나 = ncol ( dt ) ; // 테이블의 컬럼 수를 얻는다.
lbWidth = 130 ;
notImplemented = expr ( 새창 ( "아직 구현되지 않은 기능" , << 모달 , ButtonBox ( "승인" )))) ; // << 모달이 무엇인지 모르겠다.
clusterDlg = 새창 ( "2x2 우발 테이블 및 통계" , // 열의 사용자 선택을위한 새 창 만들기
테두리 상자 ( 왼쪽 ( 삼 ) , 상단 ( 2 ) ,
VListBox (
텍스트 상자 ( "분석법 비교" ) ,
HlistBox (
VListBox (
PanelBox ( "열 선택" , // 사용 가능한 열을 나열하는 상자
colListData = ColListBox ( 모든 , 폭 ( lbWidth ) , nLines ( 최소 ( 노스 캐롤라이나 , 10 )))) // 표준 너비를 사용하여 데이터 테이블의 모든 열의 목록 상자 lbWidth (130)
) ,
) ,
PanelBox ( "선택한 컬럼을 역할로 캐스트" , // 분석 할 열을 지정하는 상자
라인업 ( NCol ( 2 ) , 간격 ( 삼 ) ,
ButtonBox ( "분석, 컬럼" ,
colListY << 추가 ( colListData << GetSelected )) , // 선택한 열을 가져 와서 colListY 목록 상자에 추가합니다.
colListY = ColListBox ( 폭 ( lbWidth ) , nLines ( 5 )) , // 행의 수는 5 개로 제한되며 확장 될 수 있지만 대부분의 연구에는 충분해야합니다.
ButtonBox ( "참조 또는 비교 시험, 칼럼" ,
colListB << 추가 ( colListData << GetSelected )) , // 다른 하나와 비교하기 위해 1 열을 참조 또는 "비교"테스트로 지정합니다 (X로 끝나 향후 통계에 영향을 미침).
colListB = ColListBox ( 폭 ( lbWidth ) , nLines ( 5 )) // 행 수는 5 개로 제한되며, 결과적으로 추가 비교가 증가합니다.
// 각 분석 (Y)에 대한 첫 번째 참조 (X), 각 분석에 대한 두 번째 참조 등
) ,
) ,
PanelBox ( "동작" ,
라인업 ( NCol ( 1 ) ,
ButtonBox ( "승인" ,
콘윙 = 새창 ( "우발 사건 결과" || 숯 ( 체재 ( 데이트로 ( 오늘 ()) , "ddMonyyyy" )) ,
Tabbox ( "비상 계획 테이블" , HListBox (
계속 = 우연성 ( // cont는 플랫폼 (분석 레이어)에 대한 참조입니다.
와이 ( colListB << 항목 가져 오기 ) ,
엑스 ( colListY << 항목 가져 오기 )) ; //우연성
계속 << 비상 계획 테이블 (
카운트 ( 1 ) ,
총 % ( 0 ) ,
% ( 0 ) ,
행 % ( 0 ) ,
예상 ( 0 ) ,
일탈 ( 0 ) ,
셀 치 제곱 ( 0 ) ,
콜 럼 ( 0 ) ,
열세 정액 % ( 0 ) ,
행상의 정액 ( 0 ) ,
행운의 % ( 0 ) ,
) ;
계속 << 크기 창 ( 500 , 700 ) ; // 우연한 표가 단어를 자르는 것을 멈추고 싶지만 더 크게 만들 수는 없다.
계속 << 모자이크 플롯 ( 0 ) ; //끄다
계속 << 테스트 ( 0 ) ;
계속 << 계약 통계 ( 1 ) ; //켜다
rcont = 계속 << 보고서 ; // 보고서에 대한 참조
/ * rcont [ "계약 통계", "보커 테스트"] << 닫기 (1)
for (i = 1, i = nitems (rcont), i ++,
kap = rcont (비상 대응표 (i) [ "협정 통계", "카파 계수"]);
kapset = kap [NumberColbox ( "Kappa")];
kap << set format (8,3);
kap << set 조건부 형식 ( "상관 관계");
rcont (SendToReport (
파견 (// 아마 파견은 더 잘 될 것인가?
{ "계약 통계", "카파 계수"},
"카파",
NumberColBox,
{서식 설정 (8, 3), 조건부 서식 설정 ( "상관")}
)), * /
) , // H 목록 상자
"2x2 우발 사고의 사본" , // 두 번째 탭
// testval = reportcont [TableBox (1)]; 비상 계획 테이블 값을 얻는 방법을 알아야합니다.
// matrixbox (testval << 행렬로 가져 오기)
)) // tabbox
) ; // 창에서 ";" "대화 창을 닫지 않은 결과를 제거합니다.
clusterDlg << CloseWindow ) , // OK 버튼 상자
ButtonBox ( "취소" ,
clusterDlg << CloseWindow ) ,
텍스트 상자 ( "" ) ,
ButtonBox ( "풀다" , // 두 개의 분석 목록 상자에서 선택된 열을 제거합니다.
colListY << 선택된 것을 지우다 ;
colListB << 선택된 것을 지우다 ;
) ,
ButtonBox ( "회상" , notImplemented ) , // 아직 프로그래밍되지 않았습니다.
ButtonBox ( "도움" , notImplemented )) // 아직 프로그래밍되지 않았습니다.
) // 패널 상자
) // hlistbox
) // vlistbox
) // borderbox
) ; // 윈도우 (클러스터 dlg)