저는 JMP 17.1을 실행 중이고 아래에 표시된 스크립트가 작동합니다. @jthi 돕다.스크립트를 실행하면 창에 Big Class.jmp 테이블 상자가 표시되고 행을 선택할 수 있으며 선택한 행에서 Height 및 Weight 값이 반환됩니다.실제 응용 프로그램에는 창을 마우스 오른쪽 버튼으로 클릭하고 "Filter Where..."를 선택하여 필터링하려는 훨씬 더 큰 테이블이 있습니다.테이블 상자에서 필터링된 테이블을 가져올 때 선택한 행이 데이터를 반환하는 경우도 있고 "'hvals[/*###*/sel], hvals[의 액세스 또는 평가에 아래 첨자 문제가 있습니다."라는 오류가 반환되는 경우도 있습니다. /*###*/sel]".아래 예에서는 Big Class Table Box를 마우스 오른쪽 버튼으로 클릭하고 성별 == F로 필터링합니다.
하위 집합 테이블 상자의 모든 행에 대한 데이터를 검색하는 방법에 대한 아이디어가 있습니까?
names default to here(1);
//run this now
dt = open("$sample_data\big class.jmp", invisible);
rpt = dt << select where(row() <= 10) << get as report;
tb = rpt[Table Box(1)];
tb << Set Selectable Rows();
tb << set row change function( Function( {this}, sel = this << get selected rows ) );
sel = tb << get row change function;
nw = new window("test",
v list box(
outline box("Big Class", rpt),
text box("Click 'OK' to choose height and weight"),
Button box("OK",
hvals = tb[NumberColBox("height")] << get;
wvals = tb[NumberColBox("weight")] << get;
ht = hvals[sel][1];
wt = wvals[sel][1];
print(sel, ht,wt);
)
)
);아래는 원본 테이블(Big Class의 처음 10개 행), 성별로 필터링하고 오류가 처음 발생한 행을 선택한 후의 Big 클래스 테이블 및 오류 메시지의 이미지입니다.스크립트는 필터링된 테이블의 처음 5개 행에서 작동하지만 6행이나 7행에서는 작동하지 않습니다.