안녕하세요 여러분,
저는 JMP 스크립트 초보인데, 이 포럼에 계신 대부분의 분들에게는 아주 간단한 질문일 것 같아 여쭤봅니다. 제가 실행하고 있는 스크립트는 다음과 같습니다.
----------------------------------------------------------------------
// Open the raw base data table
raw_data_tbl=open("..\Tables\WA_VS_EXPORT_BASE_VIEW_MKT_1_SAMPLED.jmp");
// Make raw data table the current data table
Current Data Table(raw_data_tbl);
Current Data Table() << Select Where(:Total_interactions >= 1 & :Total_interactions <=40);
raw_data_tbl_sub = Current Data Table() << Subset(columns(
:B_ts,
:B_month,
:B_year,
:C_cd,
:Total_interactions,
:Product,
:T_id,
:Num_interactions,
));
Current Data Table() << Clear Select;
Current Data Table(raw_data_tbl_sub);
// Join the subset table with summary table
chnnl_in_summary = Current Data Table() <<
Join(
With(
Current Data Table() << Summary( Group( :T_id, :C_cd ), N( :Trip_id ) )
),
Select( :B_ts, :B_month, :B_year ),
SelectWith( :T_id, :C_cd ),
Select(
:Total_interactions,
:Product,
:Num_interactions
),
SelectWith( :N Rows ),
By Matching Columns( :T_id = :T_id, :Channel_cd = :Channel_cd ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 0)
);
Current Data Table(chnnl_in_summary);
chnnl_in_summary_transp = Current Data Table() << Transpose(
columns( :N Rows ),
By(
:T_id,
:B_ts,
:B_month,
:B_year,
:Total_interactions,
:Product
),
Label( :C_cd )
);
close(raw_data_tbl);
close(raw_data_tbl_sub);
close(chnnl_in_summary);
chnnl_in_summary_transp << save("..\Tables\WA_PATTR.jmp");
close(chnnl_in_summary_transp);
---------------------------------------------------------------------------------------------
스크립트는 제가 원하는 방식으로 데이터를 처리하는 데는 문제가 없지만, 처리 과정에서 생성하는 중간 테이블 때문에 테이블 창이 여러 개(총 세 개) 열리는 것이 불편합니다. 게다가 "Untitled"로 시작하는 이름의 테이블 하나를 저장할지 묻는 파일 대화 상자도 나타납니다. 다음은 스크립트 로그 창 하단의 내용입니다.
WA_VS_EXPORT_BASE_VIEW_MKT_1_SAMPLED 데이터 테이블의 하위 집합에 다른 창이 열려 있습니다. 이 데이터 테이블의 모든 창을 닫거나, 아니면 이 데이터 테이블만 숨길 수 있습니다.
JMP 데이터 테이블 Untitled 42에 대한 변경 사항을 저장하시겠습니까?
제 질문은 스크립트 실행을 방해하지 않으면서(즉, 필요할 때 테이블 전체를 닫지 않으면서) 스크립트에서 이러한 창들을 적절하게 제어하는 방법입니다. 또한 스크립트가 종료될 때 테이블 창을 포함한 모든 창이 닫히도록 하려면 어떻게 해야 할까요? 테이블에 닫기 메시지를 보내는 것만으로는 충분하지 않은 것 같습니다. 답변해 주시면 정말 감사하겠습니다.
밀로라드
위에서 언급했듯이,
close 명령을 사용하는 것이 맞습니다. 대화 상자를 없애려면 close 함수 내에서 저장하지 않도록 지정할 수 있습니다. 따라서 원본 테이블에는 다음과 같이 사용합니다.
close(raw_data_tbl,nosave);
그리고:
JSL에는 INVISIBLE 키워드가 있습니다. 다양한 상황에서 사용할 수 있습니다. JMP 스크립팅 가이드(Help.Books)를 열고 "invisible"을 검색해 보면 이 키워드에 익숙해지는 가장 좋은 방법을 알 수 있습니다.
예를 들어, 코드와 관련하여 다음을 수행할 수 있습니다.
Current Data Table() << Select Where( ... );
subsetTable = Current Data Table << Subset( invisible );