JMP16을 사용하여 JSL을 배우기 시작했습니다.
선택된 행으로 하위 집합 데이터 테이블을 생성하는 스크립트를 작성하려고 하면 선택 기준이 열(7)의 숫자 값으로 정의됩니다.
다음 스크립트의 근간은 "Tables" 탭에서 실행되는 "subset"에서 가져온 것입니다.
Data Table( "Subset of 200 kinome all excel" ) <<
Subset(
Linked,
selected rows only(0),
row selection (select where (as column(7) >0.3) );
Selected columns only(0),
);
위 스크립트의 선택이 작동하지 않았습니다. 하위 집합 테이블은 원래 테이블과 동일합니다.
내가 놓친 게 무엇입니까?
감사해요
나는 이 접근 방식을 전혀 사용하지 않을 것이며 내 컴퓨터에서 작동하지 않습니다(여전히 모든 행이 하위 집합에 있고 오류/메시지가 발생하지 않음).
Names default to here(1);
dt=open("$SAMPLE_DATA\Big Class.jmp");
Data Table( dt ) << Subset(
Linked,
selected rows only( 1 ),
row selection( select where( As Column( 2 ) > 13 ) ),
Selected columns only( 0 ),
);
그 이유는 "하위 집합" 문서에서 "행 선택"과 같은 옵션을 찾을 수 없기 때문입니다.
, [number, number, ...])>,
보다: 데이터 테이블 부분 집합화(jmp.com)
그리고 위험은 알 수 없는 매개변수가 오류를 발생시키지 않아 디버깅하기 어렵다는 것입니다.
또한 해당 하위 집합 문 내에서 행을 선택할 때 하위 집합 이전에 선택이 완료되는지 확신할 수 없으므로 안정적으로 보이지 않습니다.
내 솔루션은 하위 집합 문 앞의 행을 선택하거나 아래와 같이 행 번호를 명시적으로 선택하는 것입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Data Table( dt ) << Subset(
Linked,
rows( /* explicit rows [1,2,3] or conditionally: */ Loc( (dt:age << get values) > 16 ) ),
Selected columns only( 0 ),
);
이후 수정된 코드 @게오르그 내 코드를 잘못 찾았습니다.
몇 가지 작은 문제가 있습니다.
- 선택한 행만()을 켜야 합니다.
selected rows only( 1 ),
- Select Where는 독립적인 문으로 이동해야 합니다.
Data Table( "Subset of 200 kinome all excel" ) <<
row selection( select where( As Column( 7 ) > 0.3 ) );
전체 코드는 다음과 같습니다.
Data Table( "Subset of 200 kinome all excel" ) <<
row selection( select where( As Column( 7 ) > 0.3 ) );
Data Table( "Subset of 200 kinome all excel" ) <<
Subset(
Linked,
selected rows only( 1 ),
Selected columns only( 0 )
);