개요
JMP 스크립팅 언어(JSL)를 사용하면 다른 데이터 테이블에 저장된 데이터에 따라 값을 할당하는 스크립트를 작성할 수 있습니다. 다음 예제 스크립트는 조회 테이블을 사용하여 학생의 나이에 따라 학교 수준을 할당하는 방법을 보여줍니다. 스크립트는 다음을 수행합니다.
- 학생과 나이 목록이 포함된 원래 데이터 테이블을 엽니다.
- 원래 데이터 테이블에 새 열을 추가하여 학교 값을 저장합니다.
- 학교 수준에 따른 연령대를 포함하는 조회 테이블을 만듭니다.
- 원본 데이터 테이블의 각 행을 반복합니다.
- 연령대 사이에 해당 연령이 속하는 조회 테이블의 행 번호를 구합니다.
- 조회 테이블 행의 학교 값을 원본 데이터 테이블의 새 열에 할당합니다.
지침
JMP 세션에서 파일 메뉴를 클릭하고 새로 만들기 ► 스크립트를 선택합니다. 아래 스크립트를 복사하여 스크립트 창에 붙여넣습니다. 샘플 스크립트를 실행하려면 편집 메뉴를 클릭하고 스크립트 실행을 선택합니다.
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Add a column for the assignment */
dt << New Column( "School", Character );
/* Create a lookup table */
lt = New Table( "SchoolLookup",
Add Rows( 3 ),
New Column( "SchoolLevel", Character, Nominal, Set Values( {"Elementary", "Middle", "High"} ) ),
New Column( "Low", Numeric, Continuous, Format( "Best", 12 ), Set Values( [5, 13, 15] ) ),
New Column( "High", Numeric, Continuous, Format( "Best", 12 ), Set Values( [12, 14, 18] ) )
);
/* Loop through each row of the original data table */
For( i = 1, i <= N Rows( dt ), i++,
/* Obtain a matrix contining the row number of the lookup table where the age falls within the range */
ageRange = lt << Get Rows Where(
Column( lt, "Low" )[] <= Column( dt, "age" )[i] & Column( dt, "age" )[i] <= Column( lt, "High" )[]
);
/* Extract the row number from the matrix */
r = ageRange[1];
/* Assign the school value to the original data table */
Column( dt, "School" )[i] = Column( lt, "SchoolLevel" )[r];
);
추가 문서
JMP 스크립팅 언어에 대한 자세한 내용은 JMP 스크립팅 가이드 에서 찾을 수 있습니다. 도움말 메뉴를 클릭하고 JMP 도움말을 선택하여 JMP 내에서 가이드에 액세스할 수 있습니다. 온라인 목차에서 스크립팅 가이드를 선택합니다.
[이전 JMP 노트 46535]
alternative1: Tables/Update 사용
차이점: agerange[1] 대신 r= ageRange[Length(agerange)]를 사용합니다.
alternative2: Tables/Join을 사용하세요
차이점: 새 테이블을 생성합니다