Select Where () 문의 비교안녕하세요 여러분,
나는 이 웹사이트를 광범위하게 검색했고 이것이 쉬운 해결책이라고 생각했지만 어떤 이유로 작동할 수 없고 2일 동안 붙어 있었습니다.
아래 스크립트에서는 사용자에게 특정 열의 어느 부분을 선택하고 싶은지 묻습니다. 예를 들어 열의 값이 8인 경우(열은 1에서 8까지의 값을 가질 수 있음) 이 열에서 이 값을 가진 행을 선택하고 데이터 테이블의 이 하위 집합만으로 특정 그래프를 만드는 새 dt를 만들고 싶습니다.
텍스트 상자에 입력한 숫자와 이름을 가진 하위 집합 테이블이 생성됩니다. 이것은 내가 입력한 숫자를 보여줍니다. 즉, XNo = "8"; 그러나 Select where(Column == XNO)는 작동하지 않습니다. 오류가 발생하지 않고 특정 행을 선택하지 않거나 그래프를 만들지 않습니다. 내가 참조하는 데이터 테이블과 동일한 이름을 가진 새 데이터 테이블을 만듭니다.
Select where (column == "8") 또는 Select where(column == 8)를 입력하면 작동합니다. 나는 단지 그 8이 변수이고 운영자가 스스로 채울 수 있기를 원합니다.
dt = 현재 데이터 테이블();
col = 열(dt,"MILL_X");
col_name_list = dt << 열 이름 가져오기( string );
rdata = New Window( "어떤 부분을 확인하고 싶으신가요?",
<
<
X = 텍스트 편집 상자( "어느 부분?" ),
텍스트 상자("저장하려면 확인을 클릭하세요."),
버튼 상자("확인",
XNo = X << 텍스트 가져오기),
버튼 상자("취소");
);
표시( XNo ); //주어진 문자열을 표시합니다. 즉, 8을 입력하면 표시됩니다. --> XNo = "8";
//열의 값을 기준으로 원하는 행을 선택합니다.
dt << 행 선택(
Select where( :MILL_X == XNo ), // <--- 열에서 선택한 값 대신 전체 dt를 선택하면 작동하지 않습니다. :MILL_X == 8 을 입력하면 작동합니다. 하지만 숫자 8에만 해당됩니다.
대화 상자( 편집( Equal( 소스 열( col ) ) ), 대화 상자를 열린 상태로 유지( 0 ) )
);
Subset( (선택한 행), 출력 테이블 이름( "X " || Char(ColletNo) || " 검사" ) );
// 선택한 행을 사용하여 원하는 그래프를 생성합니다.
분포(
연속배포(
열( :"Y (μm)"n ),
공정능력( LSL( -15 ), 목표( 0 ), USL( 15 ) )
)
);
// 선택적으로 여기에서 그래프를 추가로 사용자 정의할 수 있습니다.
// 예를 들어 추가 요소를 추가하거나 서식 옵션을 지정합니다.
dt << 선택 취소;
dt << 열 선택 지우기;
자동화 및 스크립팅데이터 접근품질 및 프로세스 엔지니어링 Re: Select Where () 문의 비교XNo를 숫자로 변환해 보십시오(Num(XNo) 또는 숫자 편집 상자를 사용하십시오. 열 참조를 약간 수정해야 할 수도 있습니다(비교에 [] 추가). 아래는 Big Class 테이블을 사용하는 예입니다. 12-17 사이의 값을 사용하여 시험
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Column(dt, "age");
col_name_list = dt << get column names(string);
rdata = New Window( "Which part do you want to check?",
<<MODAL> XNo = "8"; //dt 컬럼의 값을 기준으로 원하는 행을 선택합니다. << Select Where(col[] == Num(XNo)); dt_subset = dt << Subset(선택된 행); dt << 선택 취소;</MODAL>
특정 값이 허용되는 경우 사용자가 특정 값만 선택할 수 있도록 선택기를 수정할 수도 있지만 이 버전을 작동시키는 것부터 시작하여 해당 옵션을 고려할 수도 있습니다.
Re: Select Where () 문의 비교이것은 구체적으로 해결책은 아니지만 열이 순서형(또는 적어도 연속형이 아니어야 함)이라는 것을 알았습니다. 이제 연령 열만이 아닌 다른 모든 열을 가져오는 방식으로 생성하기만 하면 됩니다. 올바른 수정 사항이 있으면 업데이트하겠습니다. 감사합니다. 나는 그것이 작동하지 않는 멍청한 일이라는 것을 알았습니다.
Re: Select Where () 문의 비교이전에 Num() 문과 col[]을 시도했기 때문에 왜 이전에는 작동하지 않았는지 모르겠습니다. 어쩌면 동시에 수행하지 않았을 수도 있고, 잘 모르겠습니다. 여러 번 반복을 시도했지만 지금은 작동하고 있습니다. 열을 연속으로 변경하는 것조차 필요하지 않습니다. 스크립트에 있는 이전에 시도하지 않은 유일한 것은 "여기에 대한 이름 기본값(1);"입니다. 선.