스크립트 : 콤보 상자 필터가있는 데이터 테이블 하위 집합여보세요,
필자는 더 큰 데이터 테이블의 하위 집합을 작성하는 스크립트를 작성하려고 시도해 왔습니다. 새 하위 집합에는 제목 ID 번호, DOB 및 선택한 기간 범위가 포함되어야합니다. 세 개의 다른 텍스트 상자에 ID #, 시작 날짜 및 종료 날짜를 묻는 스크립트를 작성했습니다. (아래에 포함되어 있으며 완벽하지 않습니다.) 그러나 팝업 창의 일부 드롭 다운 메뉴에서 현재 데이터 테이블에 사용할 수있는 ID # 및 해당 제목에 대한 날짜를 표시하고자합니다. 여기에서 예제를 따르면, http://www.jmp.com/support/notes/54/614.html , 나는 Combo Boxes로 작업을 시도했지만 제대로 이해하지 못했습니다.
문제가 발생하면 두 번째 / 세 번째 드롭 다운 메뉴가 ID # 선택에 따라 반응하게됩니다. 내가 알아챈 점 : Summarize and Associative Array는 중복 된 날짜와 공백을 줄이며, 날짜는 선호하는 "m / d / y"에 있지 않습니다.
어떤 도움을 주셔서 감사합니다!
dt = Current Data Table();
Column(dt, "Coll Date") << Data Type("Numeric", Informat("m/d/y"), Format("m/d/y") );
Column(dt, "Coll Date") << Modeling Type("Continuous");
Column(dt, "Coll Date") << Order(Ascending);
nw = New Window( "Subject ID by Date Range.",
<<MODAL>= Char( startDate ) & Format( :Coll Date, "m/d/y" ) <= Char( endDate )
);
subdt = dt << Subset(
Columns( :Patient ID1, :DOB, :Coll Date ),
Output Table Name( "subset" ),
);
subdt<< sort(by(:Coll Date), Replace Table);</MODAL>에이
스크립트 : 콤보 상자 필터를 사용하여 데이터 테이블 하위 집합선택 장치 인 선택 목록 대 슬라이더는 열의 모델링 유형이 무엇인지에 따라 달라집니다. 모델링 유형을 "서수"로 변경하면 선택 목록을 선택 목록으로 만듭니다.
dt=open("$SAMPLE_DATA\Movies.jmp");
dt:year << set modeling type(ordinal);
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);
또는 Year 열을 실제 JMP Date 값으로 바꿀 수 있고 열에 날짜 형식을 넣을 수 있습니다. 그러면 코드의 훨씬 멋진 슬라이더 버전을 볼 수 있습니다
dt=open("$SAMPLE_DATA\Movies.jmp");
for each row(
dt:year= date mdy(1,1,year));
dt:year << format("m/d/y");
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);스크립트 : 콤보 상자 필터를 사용하여 데이터 테이블 하위 집합와우, 훨씬 더 간단 해!
samle 데이터 다음에는 Type을 선택하는 것이 좋습니다. Year 열과 비슷한 것을 얻을 수 있습니까? 세 번째 소수점 아래로 1 년 반대로 이산 값을 얻기 위해 유형을 포맷 할 수 있습니까?
스크립트 : 콤보 상자 필터를 사용하여 데이터 테이블 하위 집합지정한 요구 사항을 사용하여 고유 한 대화 상자를 만들 수 있지만 원하는 작업을 수행하는 간단한 방법은 데이터 파일러를 스크립팅하고 기본 선택 기능을 사용하여 간단히 빨간색 삼각형으로 이동할 수 있습니다. "Show Subset"을 선택하면 작성한 데이터 테이블이 생성됩니다
dt=open("$SAMPLE_DATA\Movies.jmp");
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);
스크립트 : 콤보 상자 필터를 사용하여 데이터 테이블 하위 집합이것은 내가 콤보 박스를 사용하여 서있는 곳입니다.
dt = 현재 데이터 테이블 ();
열 (dt, "Coll 날짜") << 데이터 형식 ( "문자", 정보 형식 ( "d / m / y"), 형식 ( "m / d / y"));
열 (dt, "Coll 날짜") << 모델링 유형 ( "연속");
칼럼 (dt, "콜 날짜") << 주문 (오름차순);
요약 (a = 작성자 (: 환자 ID1));
삽입 (a, "", 1);
// 요약 (b = By (: Coll Date));
date = 연관 배열 ((: Coll 날짜 << Get Values)) << Get Keys;
새 창 ( "예",
<< 모달,
H 목록 상자 (
패널 박스 ( "Select Patient ID :",
cb1 = 콤보 상자 (
에이,
<< SetFunction (
기능 ({this},
selection = this << Get Selected ();
r = // 각 행에 대해 (선택된 (행 상태 () = : 환자 ID1 == Num (선택)));
dt << 행 가져 오기 위치 (: 환자 ID == Num (선택));
요약 (b = By (: Coll Date [r]));
b << 데이터 유형 ( "문자", 정보 ( "d / m / y"), 형식 ( "m / d / y"));
// b = 연관 배열 ((: Coll Date [r] << Get Values)) << Get Keys;
// startDate = 연관 배열 ((date [r] << Get Values)) << Get Keys;
cb2 << 항목 설정 (날짜 [r]);
)
)
)
),
패널 박스 ( "시작 날짜 선택 :",
cb2 = 콤보 상자 (
비,
<< SetFunction (
기능 ({this},
one = this << Get Selected ();
g = dt << 행 가져 오기 위치 (: Coll Date> one);
요약 (c = 작성자 (: Coll Date [g]));
endDate = : 콜 날짜 [g];
cb3 << 항목 설정 (endDate);
)
)
)
),
패널 박스 ( "끝 날짜 선택 :",
cb3 = 콤보 상자
비,
<< SetFunction (
기능 ({this},
두 =이 << Get Selected ()))
)
)
)
);
각 행 (
선택 (행 상태 ()) = : 환자 ID1 == Char (선택) 및 형식 (: Coll 날짜, "m / d / y")> = 하나
형식 (: Coll 날짜, "m / d / y") <= 2
);
subdt = dt << 부분 집합 (열 (: 환자 ID1, : DOB, : Coll 날짜), 출력 테이블 이름 ( "부분 집합"));
subdt << 정렬 (By (: Coll Date), Replace Table);다시 : 스크립트 : 콤보 상자 필터가있는 데이터 테이블 하위 집합서브 세트 테이블 부분을 표시하는 스크립트를 어떻게 작성합니까?