안녕하세요, 저는 JSL을 처음 사용합니다. 다음을 달성하는 코드를 작성하려고 합니다.
4개의 다른 JMP 테이블이 있습니다. 표 1의 열 1의 각 행을 나머지 세 테이블의 열 1과 비교하고 있습니다.
열 1/테이블 1의 항목/행이 테이블 2의 열 1과 일치하는 경우 문자 say-Group1을 테이블 1/열 4의 행에 할당합니다.
마찬가지로 열 1/이야기1의 행이 테이블 3 및 테이블 4의 열1과 일치하면 테이블 1/열 4의 그룹 2라는 문자를 할당합니다.
열 4를 성공적으로 생성하고 있으며 테이블 2와 비교한 후입니다.
그러나 table1/column1의 행을 table 3/column1과 비교할 때 동일한 열 4를 Group2로 업데이트하는 것이 어렵다는 것을 알게 되었습니다.
아무도 도와 주시겠습니까?
*좀 더 구체적으로 말하면 주어진 조건에 대해 기존 열을 새 문자열로 어떻게 업데이트할 수 있습니까? 나는 그것을 위해 -new column을 사용할 수 없기 때문에.*
감사합니다
조디프
안녕 짐.
도와 주셔서 정말로 고맙습니다. 수정이 효과가 있었고 많이 단순화되었습니다.
감사해요
조이딥
다음은 작업 중인 스크립트에 도움이 되는 몇 가지 예입니다.
Names Default To Here( 1 );
dt1 = New Table( "Table 1", New Column( "Col A", character, values( {"A1", "A2", "A3"} ) ) );
dt2 = New Table( "Table 2", New Column( "Col B", character, values( {"B1", "B2", "B3"} ) ) );
dt3 = New Table( "Table 3", New Column( "Col C", character, values( {"C1", "C2", "C3"} ) ) );
If( dt1:Col A[1] == "A1",
dt2:Col B[3] = "Group 1"
);
If( dt2[2, 1] == "B2",
Data Table( "Table 1" ):Col A[2] = "Looking Good"
);
다음은 코드를 단순화할 것으로 생각되는 스크립트 수정입니다.
names default to here(1);
dt3 = Open( "\\Table 2" );
dt6 = Open( "Table 1" );
dt6 << New Column( "Group",
Character)
m = N Rows( dt6 );
n = N Rows( dt3 );
For( i = 1, i <= m, i++,;
For( j = 1, j <= n, j++,
If( Column( dt6, "Core ID" )[i] == (Column( dt3, "PC_ID" )[j]),
dt6:Group[i] = "Group 1"
);
);
);
dt6 << save( "Table1" );
//Close( dt3, nosave );
//Close( dt6, nosave );