많은 수의 열을 숨기거나 제외하는 JSL을 통한 효율적인 방법유전체학 예 @Chris_Kirchberg 개발했습니다(참조 https://community.jmp.com/t5/Technical-Reference-Library/C40-mRNA-Expression-Cattle-Follicle-Development/ta-p/519216 ) 워크플로의 일부는 데이터 품질 문제로 인해 분석에서 제외해야 하는 열을 식별하는 것입니다.그와 나는 이 작업을 효율적으로 수행하기 위해 스크립트 작업을 하고 있습니다.이 예에는 28000개의 열이 있고 그 중 약 9000개의 열을 숨기고 제외해야 합니다.현재 JSL에서 루프로 이 작업을 수행하고 있지만 다소 느립니다(몇 초 소요).
// collist is a list of column references
For( i = 1, i <= N Items( collist ), i++,
collist[i] << Hide( 1 ) << Exclude( 1 )
);
더 빠른 방법이 있어야 할 것 같습니다.더 빠르게 만들 수 있는 제안이 있으십니까?
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법후속 조치: 이 문제를 개발팀과 공유했으며 이러한 유형의 작업 속도를 높이기 위해 몇 가지 개선 사항이 적용되었습니다.숨기기/제외하기 위해 열을 반복하면 열 수가 증가함에 따라 속도가 느려지지만 열 숨기기 및 제외를 위한 몇 가지 새로운 JSL 메시지를 사용할 수 있으며 작업 레코더는 적절한 위치에 메시지를 사용합니다. 이는 JMP18 개발 빌드 및 18 얼리 어답터 버전에서 사용할 수 있습니다.
Jira 문제에서(JMP-13445)
데이터 테이블에 새로운 열 숨기기 및 열 제외 명령을 추가하여 수정했습니다. 다음과 같이 호출할 수 있습니다.
<SPAN class="">dt << 열 숨기기; // 선택된 열을 숨긴다 </SPAN>
dt << 열 숨기기(1|0); // 열 숨기기 또는 숨기기 해제
dt << 열 숨기기( COLUMN_LIST ); // 나열된 열을 숨깁니다.
dt << 열 숨기기( 1|0, COLUMN_LIST ); // 나열된 열을 숨기거나 숨기기 해제합니다.
열 제외 동일한 구문을 사용합니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법빠른 업데이트: 더 큰 스크립트에 포함하면 Mac에서 작동하는 것처럼 보이지만 Windows에서는 작동하지 않습니다.더 큰 스크립트 내에서 Main Menu() 호출이 작동하도록 JMP의 Windows 버전에 대해 특별히 수행해야 하는 작업이 있습니까?
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법Main Menu( "Cols:Hide/Unhide" );
이것을 다시 시도했지만 복사하여 내 스크립트에 붙여넣으면 이제 작동합니다. 건더슨의 태양! 왜 작동하지 않고 지금은 작동합니까? 내가 생각할 수있는 유일한 것은 선택한 열로 해당 행만 실행하면 작동하지만 열을 선택하는 스크립트에 넣으면 다음 행이 작동하지 않는다는 것입니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법@brady_brady , 어떤 이유로 메인 메뉴("Cols:Hide/Unhide")가 Windows 10 JMP 17 EA9에서 작동하지 않습니다. 그 이유가 무엇입니까? 적어도 그것은 나를 위해 작동하지 않습니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법기본 메뉴 명령은 정말 빠르며 해킹으로 보지는 않지만 JSL이 메시지를 통해 기본 메뉴 명령과 동일한 코드를 실행할 수 있다면 좋을 것입니다. 또는 스크립팅 가이드에서 메인 메시지 구문을 확장하고 메인 메뉴가 Mac과 PC 간에 동일하게 보이지 않는 경우 플랫폼 간 표준화가 있을 수 있습니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법게놈 발현 데이터를 처리하는 작업 흐름의 일부입니다.종종 분석 데이터 테이블에는 표현이 거의 또는 전혀 없는 많은 열(여기서 열은 특정 게놈 식 변수에 해당함)이 있으므로 해당 열을 식별한 다음 추가 분석에 사용하지 않으려고 합니다.숨기기 및 제외는 후속 분석 플랫폼 대화 상자에서 해당 열을 표시하지 않는 편리한 방법입니다.열을 삭제하거나 사용하려는 열의 하위 집합을 만들 수도 있지만 데이터 테이블에서 제외/숨겨진 열을 유지하는 데 약간의 가치가 있습니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법또한 for each()를 사용해 보았지만 여전히 매우 느렸습니다.
for each({c, ii}, collist,
c << Hide(1) << Exclude(1)
)
그리고 그것은 똑같이 느 렸습니다.
Main Menu 명령을 사용하면 매우 빠르게 작동합니다(감사합니다. @yuichi_katsumur !) 하지만 해킹처럼 느껴집니다.이에 대한 제안과 도움에 감사드립니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법안녕 샘,
다음 스크립트는 어떻습니까? 훨씬 빠릅니다.
dt << clear column selection();
dt << Select Columns( collist );
Wait( 0 );
Main Menu( "Cols:Hide/Unhide" );
Main Menu( "Cols:Exclude/Unexclude" );
dt << clear column selection();
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법나는 몇 가지 트릭을 시도했지만 그들 중 누구도 작동하지 않았습니다.
- 작품을 동봉
dt << Begin Data Update;
//work here...
dt << End Data Update;
-데이터 테이블을 보이지 않게 만들기
- 데이터 테이블을 비공개로 만들기
이 응용 프로그램에서 열을 숨기고 제외하는 목적은 무엇입니까? 해결 방법이 있을 수 있습니다.
Re: JSL을 통해 많은 수의 열을 숨기거나 제외하는 효율적인 방법
나는 또한 시도했다
collist << Hide(1);
collist << Exclude(1);
그리고 그것은 또한 매우 느립니다.