JSL은 다른 테이블의 값을 기반으로 col 이름의 일부를 변경합니다.bin01, bin02, .... bin16의 일반 헤더로 많은 데이터를 수집하기 위해 일반 쿼리를 실행한 후, 레시피에 기반한 bin 정보가 있는 다른 able을 기반으로 열 헤더를 업데이트하려고 합니다. munger 명령을 사용하면 쉬운 작업처럼 보이지만 중첩 루프에 배치하면 오류가 발생합니다. 동일한 구문이 단일 루프 형식에서 작동하지만 1~16을 대체할 bin 값의 수가 가변적이므로 루프 구조가 선호됩니다. 샘플 데이터 테이블과 JSL을 첨부했습니다. 추천 사항이 있으면 감사하겠습니다. JMP16.1을 사용하여 이 문제를 해결하고 있습니다.
대량 맞춤형윈도우Re: JSL은 다른 테이블의 값을 기반으로 열 이름의 일부를 변경합니다.다음은 샘플 데이터 테이블과 함께 작동하는 스크립트의 재작업입니다.주요 변경 사항은 Set() 내에서 오류가 발생할 때 코드가 중지되지 않도록 하는 Try() 함수가 추가된 것입니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Need to update data table based on bins in recipe, name and get rid of Bin Cols no data was collected, bins greater that number defined by bin size list
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Referance: https://community.jmp.com/t5/JMP-Scripts/Find-amp-Replace-for-Column-Names/ta-p/217124
b = Data Table( "BinSizeList" ):Name( "CntBins" ) << get values;
Show( b );
Show( b[1] );
bnum = Data Table( "BinSizeList" ):Name( "Label" ) << get values;
Show( bnum );
bsize = Data Table( "BinSizeList" ):Name( "Bin_Label" ) << get values;
Show( bsize );
Data Table( "LPD_Data" ) << Select Columns( ALL );
cols = Data Table( "LPD_Data" ) << Get Selected Columns();
Show( cols );
// Nested loop does not work? Error on "set name" comand only when nested j loop is included. Works fine if j for statement is removed and [ j ] replaced with a valid number
For( i = 1, i <= N Items( cols ), i++,
For( j = 1, j <= b[1], j++,
Try(
cols[i] << set name(
Munger(
Char( cols[i] ), // << get name,
1,
Eval( Char( bnum[j] ) ),
Eval( Char( bsize[j] ) )
)
)
)
)
);
Re: JSL이 다른 테이블의 값을 기반으로 열 이름의 일부를 변경합니다.당신의 도움을 주셔서 감사합니다.전에는 TRY 명령을 본 적이 없습니다.훌륭하게 작동했습니다.