이제 JMP에 익숙해지기 시작했고 데이터베이스에서 데이터 테이블을 추출, 재정렬 및 형식 지정하는 첫 번째 스크립트 작업을 성공적으로 마쳤습니다. 잘 작동하고 시간을 절약합니다. 이 스크립트를 사본으로 개발했기 때문에 JMP 스크립팅 시작 무릎에 앉으니 자연스럽게 대본을 이해하는 데 관심이 생겼다. 그래서 여기에 문제가 있습니다.
다양한 측정이 필요한 제조 공정을 생각해 보십시오. 데이터베이스에는 한 열에 모든 테스트 방법이 있고 다른 열에는 모든 테스트 결과가 있습니다. 원하는 것을 얻으려면 이 테이블을 분할해야 합니다. 그러나 데이터베이스에 있는 많은 항목이 레거시 Excel 파일에서 가져온 것이기 때문에 이전의 잘못된 항목으로 인해 테스트 이름이 포함된 열을 일부 다시 코딩해야 합니다. 해당 (재)코드 부분에 도달하기 위해 열 메뉴에서 Recode...를 통해 이동했는데 스크립트에서 이해할 수 없는 유일한 부분입니다. (일반적으로 매우 기본적인 스크립트입니다.)
아래 게시된 예에서 대문자와 숫자는 사용된 실제 테스트 방법 이름의 변형을 반영합니다. 예를 들어 A는 하나의 테스트(예: pH 테스트)이고 B는 또 다른 테스트(예: 점도)입니다. A(1), A(2), ... A(n)은 모두 A로 코딩된 다음 B(1), ... B(n)에서 B로, 등등. 이제 변수가 함께 속하는 정확히 이 코드 조각에서 소프트웨어는 어떻게 됩니까? 스크립팅 가이드와 스크립팅 인덱스를 확인했지만 여전히 이해가 되지 않습니다. _rcOrig 및 _rcNow, 그들은 무엇을 의미합니까? 스크립트, 즉 각 행의 변수는 완전한 스크립트 사본에 있는 그대로 정렬됩니다.
답변 감사합니다.
dt << Recode Column(
dt:TestName,
{Map Value(
_rcOrig,
{"A(1)", "A(2)",
"A(3)", "A(4)",
"A(5)", "A(6)", "B(1)",
"B(2)", "C(1)", "C(2)",
"C(3)", "C(4)", "D(1)", "D(2)", "E(1)",
"E(2)", "F(1)", "F(2)", "G(1)", "G(2)",
"H(1)", "H(2)", "I(1)", "I(2)",
"I(3)", "I(4)", "J(1)", "J(2)", "K(1)",
"K(2)", "L(1)", "L(2)",
"M(1)", "M(2)", "M(3)",
"M(4)"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
안녕,
항상 하나의 문자인 경우 다음과 같은 간단한 수식을 만들 수 있습니다.
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));
제공한 JSL에 있는 테스트 값으로 데이터 테이블에 새 열을 만들었습니다.

그런 다음 레코딩 대화 상자를 열고 레코딩을 변경했습니다.

그런 다음 빨간색 삼각형으로 이동하여 선택했습니다.
스크립트=>스크립트 창에 저장
아래는 그것이 나에게 준 것입니다.
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Begin Data Update;
col1 = dt << New Column( dt:test );
col1 << Set Name( "test 2" );
dt << Move Selected Columns( {col1}, after( dt:test ) );
dt << Recode Column(
dt:test,
{Map Value(
_rcOrig,
{"A(1)", "A", "A(2)", "A", "A(3)", "A", "A(4)", "A", "A(5)", "A", "A(6)",
"A", "B(1)", "B", "B(2)", "B", "C(1)", "C", "C(2)", "C", "C(3)", "C", "C(4)",
"C", "D(1)", "D", "D(2)", "D", "E(1)", "E", "E(2)", "E", "F(1)", "F", "F(2)",
"F", "G(1)", "G", "G(2)", "G", "H(1)", "H", "H(2)", "H", "I(1)", "I", "I(2)",
"I", "I(3)", "I", "I(4)", "I", "J(1)", "J", "J(2)", "J", "K(1)", "K", "K(2)",
"K", "L(1)", "L", "L(2)", "L", "M(1)", "M", "M(2)", "M", "M(3)", "M", "M(4)",
"M"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
예제에서 각 값/결과 쌍에 대해 값이 설정되는 방식을 확인할 수 있습니다.