테이블 병합에 대한 질문입니다. JSL을 사용하여 여러 열 데이터를 하나의 열로 병합하는 방법은 무엇입니까?
하나의 테이블이 있는 경우 일부 열 이름은 매우 유사합니다. 예를 들어 하나의 열 이름은 WR 689700 @WFI*HH 씨 56XY Z, 다른 열 이름은 WR@ 689799 @WFI*HH 56XY W, 한 열의 셀 내용은 실제 값을 표시하고 다른 열의 동일한 행은 "NA"를 표시합니다. 문제는 아래와 같이 새 열의 셀 내용을 병합하고 "NA"를 제거하는 방법입니다. 테이블에 20개 이상의 열이 있기 때문에 JSL을 사용하여 유사한 열을 판단하고 그룹화한 다음 셀 내용을 새 열에 병합해야 합니다.
감사해요
| | | 원본 테이블 | | | | 테이블 병합 후 |
| ID_1 | 아이디_2 | WR@689700@WFI*HHC 56XYZ | WR@689799@WFI*HH 56XYZ W | WR@780990@UW*FFY 78XYZ | WR@780666@UW*FFY 78XYZ | --> | ID_1 | 아이디_2 | WR@689700@WFI*HHC 56XYZ | WR@689799@WFI*HH 56XYZ W | WR@780990@UW*FFY 78XYZ | WR@780666@UW*FFY 78XYZ | WR@1 | WR@2 |
| 22164 | 115 | 72_22P | 없음 | SS_YY | 없음 | 22164 | 115 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 25335 | 33 | 72_22P | 없음 | 없음 | 88_CC | 25335 | 33 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 24870 | 872 | 72_22P | 없음 | SS_YY | 없음 | 24870 | 872 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 24861 | 591 | 없음 | 72_88P | SS_YY | 없음 | 24861 | 591 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 12928 | 274 | 72_22P | 없음 | SS_YY | 없음 | 12928 | 274 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 20927 | 818 | 없음 | 72_88P | SS_YY | 없음 | 20927 | 818 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 22167 | 14 | 72_22P | 없음 | SS_YY | 없음 | 22167 | 14 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 12930 | 120 | 72_22P | 없음 | 없음 | 88_CC | 12930 | 120 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 28447 | 155 | 72_22P | 없음 | SS_YY | 없음 | 28447 | 155 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 33380 | 138 | 없음 | 72_88P | 없음 | 88_CC | 33380 | 138 | 없음 | 72_88P | 없음 | 88_CC | 72_88P | 88_CC |
| 18186 | 769 | 72_22P | 없음 | 없음 | 88_CC | 18186 | 769 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 27557 | 91 | 없음 | 72_88P | 없음 | 88_CC | 27557 | 91 | 없음 | 72_88P | 없음 | 88_CC | 72_88P | 88_CC |
| 14863 | 116 | 72_22P | 없음 | 없음 | 88_CC | 14863 | 116 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 29928 | 204 | 없음 | 72_88P | SS_YY | 없음 | 29928 | 204 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 15809 | 70 | 72_22P | 없음 | 없음 | 88_CC | 15809 | 70 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 21701 | 269 | 72_22P | 없음 | SS_YY | 없음 | 21701 | 269 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 27937 | 110 | 없음 | 72_88P | SS_YY | 없음 | 27937 | 110 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 20136 | 454 | 72_22P | 없음 | SS_YY | 없음 | 20136 | 454 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 27934 | 866 | 없음 | 72_88P | 없음 | 88_CC | 27934 | 866 | 없음 | 72_88P | 없음 | 88_CC | 72_88P | 88_CC |
| 18186 | 759 | 72_22P | 없음 | SS_YY | 없음 | 18186 | 759 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 27937 | 106 | 없음 | 72_88P | SS_YY | 없음 | 27937 | 106 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 11921 | 170 | 72_22P | 없음 | SS_YY | 없음 | 11921 | 170 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 15809 | 275 | 72_22P | 없음 | SS_YY | 없음 | 15809 | 275 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 26314 | 222 | 72_22P | 없음 | 없음 | 88_CC | 26314 | 222 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 25323 | 274 | 72_22P | 없음 | SS_YY | 없음 | 25323 | 274 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
| 21684 | 305 | 72_22P | 없음 | 없음 | 88_CC | 21684 | 305 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 25931 | 453 | 없음 | 72_88P | SS_YY | 없음 | 25931 | 453 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 19928 | 462 | 없음 | 72_88P | SS_YY | 없음 | 19928 | 462 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 16925 | 12 | 없음 | 72_88P | 없음 | 88_CC | 16925 | 12 | 없음 | 72_88P | 없음 | 88_CC | 72_88P | 88_CC |
| 15927 | 8 | 없음 | 72_88P | SS_YY | 없음 | 15927 | 8 | 없음 | 72_88P | SS_YY | 없음 | 72_88P | SS_YY |
| 12930 | 35 | 72_22P | 없음 | 없음 | 88_CC | 12930 | 35 | 72_22P | 없음 | 없음 | 88_CC | 72_22P | 88_CC |
| 21702 | 178 | 72_22P | 없음 | SS_YY | 없음 | 21702 | 178 | 72_22P | 없음 | SS_YY | 없음 | 72_22P | SS_YY |
이를 수행하는 한 가지 방법이 있습니다.값이 변경되므로 테이블의 원본 복사본을 저장했는지 확인하십시오.전체 테이블을 수정하기 위해 수행해야 하는 모든 작업은 열 이름(compList1 & compList2)의 비교 목록 2개를 만드는 것입니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Create the lists of the columns to be compaired
// compList1[1] will be compired with compList2[1] etc.
compList1 = {"WR@689700@WFI*HHC 56XYZ", "WR@780990@UW*FFY 78XYZ"};
compList2 = {"WR@689799@WFI*HH 56XYZ W", "WR@780666@UW*FFY 78XYZ"};
// Loop across the columns, finding which rows to be changed and
// then loop across those rows and change them
For( i = 1, i <= N Items( compList1 ), i++,
// Find which rows to change
theRows = dt << get rows where( As Column( dt, compList1[i] ) == "NA" & As Column( dt, compList2[i] ) != "NA" );
// Change the rows
For( k = 1, k <= N Rows( theRows ), k++,
Column( dt, compList1[i] )[theRows[k]] = Column( dt, compList2[i] )[theRows[k]]
);
);
// Delete the duplicate columns
dt << delete columns( compList2 );