셀에 특정 단어가 있는지에 따라 행 삭제안녕하세요 여러분! 저는 이것이 다양한 악기의 데이터 파일로 작업하는 많은 사람들에게 일반적인 상황일 수 있다고 생각합니다. 제 데이터 세트는 특정 악기의 여러 출력 파일을 스티칭하여 파생되었습니다. 유용한 데이터 행 외에도 각 출력 파일 위에 레시피, 파일 등을 지정하는 여러 행이 있으며, 일반적으로 이 정보는 열 1에 있습니다. 데이터를 처리하는 데는 해당 정보가 필요하지 않으므로 열 1의 셀에서 위의 단어인 레시피, 파일 등이 포함된 불필요한 행을 삭제하고 싶습니다. 같은 셀에 다른 단어가 있을 수 있습니다. 예를 들어 "웨이퍼 레시피 이름" 또는 "스테이지 그룹 파일" 등이 있습니다. 다음에 대해 여러 가지 순열을 시도했지만 항상 "Send는 "Send"의 평가에 대한 스크립트 가능한 개체를 기대합니다"라는 오류 메시지가 표시됩니다. 미리 감사드립니다!
dt_new2 << (열 1, "레시피"가 포함된 행을 가져옵니다);
dt_new2 << 행 삭제;
기다리다(1);
dt_new2 << (:열 1, "파일"이 포함된 행을 가져옵니다);
dt_new2 << 행 삭제;
기다리다(1)
자동화 및 스크립팅데이터 블렌딩 및 정리Re: 셀에 특정 단어가 있는지에 따라 행 삭제이것을 시도해보세요
Names Default To Here( 1 );
dt_new2 = Current Data Table();
dt_new2 << select where( Contains( :Column 1, "Recipe" ) );
dt_new2 << delete rows;
Wait( 0 );
dt_new2 << select where( Contains( :Column 1, "File" ) );
dt_new2 << delete rows;
스크립팅 인덱스
도움말=>스크립팅 인덱스
는 명령문 구문과 예시에 대한 좋은 자료입니다.
또한 JMP 도움말에 있는 스크립팅 가이드를 읽어볼 시간을 갖는 것이 좋습니다.
Re: 셀에 특정 단어가 있는지에 따라 행 삭제인수 없이 << Delete Rows를 사용하고 싶다면 행을 선택해야 합니다(짐이 보여준 것처럼). 다른 옵션은 행을 변수에 모아서 사용하는 것입니다(제가 선호하는 방법은 "불필요한" 행 선택을 건너뛰지만 디버깅을 원할 경우 선택이 더 시각적입니다)
Names Default To Here(1);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "Recipe"));
dt_new2 << delete rows(rows_to_delete);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "File"));
dt_new2 << delete rows(rows_to_delete);
이 동작은 스크립팅 인덱스에 문서화되어 있지 않습니다.

하지만 JSL Syntax Reference Data Table Messages(jmp.com) 및 Scripting Guide Delete Rows(jmp.com) 에서 찾을 수 있습니다(Script Editor에서 Delete Rows를 검색하고 Topic Help를 누르세요)
Re: 셀에 특정 단어가 있는지에 따라 행 삭제안녕하세요, txnelson, 답변 감사합니다! 말씀드렸듯이, select where + contains를 포함한 여러 관련 명령을 시도했지만, 맨 위에 Names default to here라는 문장이 없어서 이전에는 이 방법이 효과가 없었습니다. 지금은 루틴이 제게 효과가 있습니다. 의견을 주셔서 정말 감사합니다. 감사합니다!
Re: 셀에 특정 단어가 있는지에 따라 행 삭제안녕하세요 jthi, 답변 감사합니다. 고맙습니다. 저는 항상 변수에 더 의존하라고 스스로에게 일깨워주지만, 불행히도 다른 옵션이 없을 때만 그렇게 합니다. 좋은 제안입니다. 많은 다른 사람들에게 유용할 거라고 확신합니다. 응원합니다!
Re: 셀에 특정 단어가 있는지에 따라 행 삭제변수 없이도 할 수 있지만 읽기가 훨씬 어렵고 문제가 있을 경우 디버깅하기가 더 어렵기 때문에 제안하지 않습니다.
Names Default To Here(1);
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "Recipe")));
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "File")));