안녕,
Violation 열에서 값이 1인 모든 행을 선택하고 Device 열 값을 추출한 다음 해당 장치와 관련된 모든 행을 제외하려고 합니다.누구든지 내가 대본을 만드는 데 도움을 줄 수 있습니까?감사해요!
아래는 이 작업을 수행할 스크립트입니다.
Names Default To Here(1);
dt = Current Data Table();
dt << Clear Row States;
violation_rows = dt << Get Rows Where(:Violation == 1);
violation_devices = Associative Array(dt[violation_rows, "Device"]) << get keys;
dt << Select Where(Contains(violation_devices, :Device)) << Exclude(1) << Clear Select;
- :Violation == 1인 행 번호 가져오기
- 데이터 테이블 첨자 및 연관 배열을 사용하여 장치 가져오기
- 해당 장치가 있는 행을 선택하고 제외합니다.
이 작업을 대화식으로 쉽게 수행할 수도 있습니다(향상된 로그에 기록됨).
- 장치를 그룹으로, 위반을 하위 그룹으로 하여 요약 테이블을 생성합니다. 또한 테이블이 연결되어 있는지 확인하십시오.
- N(1)에서 0개의 값을 선택한 다음(유효성 검사 == 1임을 나타냄) 행을 마우스 오른쪽 버튼으로 클릭하여 선택을 반전시킵니다.
- 이제 기본 테이블에서 장치를 선택했습니다.
- 이제 이 행을 제외할 수 있습니다.
JMP는 다음과 같은 스크립트를 생성합니다.
// Open Data Table: Sample(1).jmp
// → Data Table("Sample(1)")
Open("$DOWNLOADS/Sample(1).jmp");
// Data table summary
// → Data Table("Sample(1) By (Device)")
Data Table("Sample(1)") << Summary(Group(:Device), N, Subgroup(:Violation), Freq("None"), Weight("None"));
// Select matching cells
Data Table("Sample(1) By (Device)") << Select Where(:"N(1)"n == 0);
// Invert current selection
Data Table("Sample(1) By (Device)") << Invert Row Selection;
// Toggle selected rows' exclude state
Data Table("Sample(1) By (Device)") << Select Where(:"N(1)"n == 0) << Invert Row Selection << Exclude;
// Close Data Table: Sample(1) By (Device)
Close(Data Table("Sample(1) By (Device)"), NoSave);
그리고 약간의 수정을 통해 향후에 사용되는 상당히 강력한 스크립트가 될 것입니다(테이블 이름 대신 변수를 사용하고 일부 변경 사항을 언급하기 위해 Names Default To Here(1)...로 시작).
신속한 답변에 감사드립니다. 당신은 내 하루를 만들었습니다!