JSL을 사용하여 수식에서 참조되는 열/테이블 변수 삭제안녕,
이 게시물의 주제에서 언급했듯이 JSL 명령 "Delete Column" 또는 "Delete Table Variable"은 열에 함수가 있거나 테이블 변수가 함수의 일부인 경우 작동하지 않는 것을 관찰했습니다.
이 작업을 "수동으로" 수행할 때 사용자에게 그러한 작업의 결과에 대해 알리고 작업을 선택할 수 있도록 하는 추가 경고 창이 있습니다.
나는 이 행동이 의도적으로 도입되었다는 것을 이해하고 있으며 그것에 대해 전적으로 괜찮습니다.
JSL을 사용하여 열/테이블 변수를 삭제할 때 이 창을 건너뛰는 옵션/인수/플래그/명령이 있는지 묻고 싶습니다.
도와 줘서 고마워.
데이터 테이블스크립팅Re: JSL을 사용하여 수식에서 참조되는 열/테이블 변수를 삭제합니다.귀하가 문의하신 문제로 제가 이해한 내용을 재현할 수 없습니다. 아래 스크립트는 수식 내에서 테이블 변수와 열을 삭제하고 각 수식 내에서 함수를 삭제합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << New Table Variable( "Days", 42 );
Wait( 5 );
dt << New Column( "test",
formula(
delTVar = Function( {theVar},
dt << Delete Table Variable( theVar )
);
rc = delTVar( "Days" );
:weight;
)
);
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Wait( 5 );
dt << New Column( "test",
formula(
delCol = Function( {theCol},
dt << delete columns( theCol )
);
rc = delCol( "height" );
:weight;
)
);Re: JSL을 사용하여 수식에서 참조되는 열/테이블 변수를 삭제합니다.나는 이것을 할 수 있는 플래그가 없다고 생각한다. 위시리스트 항목을 위한 장소일 수도 있습니다. 플래그는 참조, 수식 또는 취소를 제거하도록 요청하는 대화형 버전과 유사하게 구성 가능해야 한다고 생각합니다(Throw도 추가할 수도 있음).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("f", Numeric, Continuous, Formula(:height*weight));
dt << Delete Columns({"height", "weight"});
로그에 인쇄됩니다:
나머지 열의 수식에서 일부가 참조되는 동안 선택한 열을 삭제할 수 없습니다.
수식을 제거하면 데이터가 변경되지 않습니다. 참조를 제거하면 각 참조가 빈 값으로 대체됩니다. 이러한 효과는 영구적이며 취소할 수 없습니다.
스크립팅 가능[]
Log Capture()를 사용하여 이 메시지를 캡처한 다음 일부 JSL 트릭을 수행하여 참조/공식을 미리 제거할 수 있습니다.