좋아, 그래서 나는 JMP에 익숙해지기 시작했고 데이터베이스에서 데이터 테이블을 추출, 재 배열 및 형식화하는 첫 번째 스크립트에서 성공적으로 작업했습니다. 잘 작동하고 시간을 절약합니다. 이 스크립트를 JMP 스크립팅으로 이동 무릎 위에서 자연스럽게 대본을 이해하는 데 관심이있었습니다. 그래서 여기에 문제가 있습니다.
다양한 측정이 필요한 제조 공정을 생각해보십시오. 데이터베이스에는 한 열에 모든 테스트 방법이 있고 다른 열에 모든 테스트 결과가 있습니다. 내가 원하는 것을 얻으려면이 테이블을 분할해야합니다. 그러나 데이터베이스에있는 많은 항목이 레거시 Excel 파일에서 가져온 것이므로 이전의 잘못된 항목으로 인해 테스트 이름이 포함 된 열의 일부 레코딩이 필요합니다. 해당 (재) 코드 조각을 얻기 위해 열 메뉴의 Recode ...를 통해 갔으며 스크립트에서 이해할 수없는 유일한 조각입니다. (일반적으로 매우 기본적인 스크립트입니다.)
아래 게시 된 예에서 대문자와 숫자는 사용 된 실제 테스트 방법 이름의 변형을 반영합니다. 예를 들어 A는 하나의 테스트 (예 : pH 테스트)이고 B는 다른 테스트 (예 : 점도)입니다. A (1), A (2), ... A (n)은 모두 A로 레코딩 된 다음 B (1), ... B (n)에서 B로, 등등. 이제 어떻게 소프트웨어가 정확히이 코드 조각에서 변수가 함께 속하는 것일까 요? 스크립팅 가이드와 스크립팅 색인을 확인했지만 여전히 이해가되지 않습니다. _rcOrig 및 _rc 이제 그 의미는 무엇입니까? 스크립트, 즉 행과 열은 전체 스크립트의 사본에있는 그대로 정확하게 정렬됩니다.
답변 해 주셔서 감사합니다.
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;제공 한 JSL에있는 테스트 값을 사용하여 데이터 테이블에 새 열을 만들었습니다.

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

그런 다음 빨간색 삼각형으로 이동하여
Script => 스크립트 창에 저장
그리고 아래는 그것이 나에게 준 것입니다.
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;
예에서 각 값 / 결과 쌍에 대해 값이 설정되는 방식을 볼 수 있습니다.
안녕,
항상 하나의 문자 인 경우 다음과 같은 간단한 공식을 만들 수 있습니다.
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));