JSL을 사용하여 조건이 포함된 다중 매개변수 스택특정 형식 "TestNumber;TestName"의 여러 매개변수가 포함된 데이터세트가 있습니다. 나는 우리가 수동으로 쉽게 할 수 있다는 것을 알고 있습니다. 하지만
나는 그것들을 모두 현명한 방법으로 JSL과 함께 쌓고 싶습니다. JSL에서는 어떻게 해야 할까요? 조언해주세요. 감사해요
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택안녕하세요 프롬즈님,
좋은 팁을 주셔서 감사합니다! 챔피언처럼 작동합니다!Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택열 이름을 문자열로 변환해야 했습니다.또한 one_col은 목록이 아닙니다.수정된 코드는 다음과 같습니다.나는 당신이
a) 스크립팅 매뉴얼을 읽어보세요
b) 로그에서 변수 값, 오류 메시지 등을 자주 확인하십시오.
c) 이 토론 포럼을 계속 사용하십시오.
Names Default To Here( 1 );
sourceTable = Data Table( "FINAL" );
col_list = sourceTable << get column names( continuous, string );
stackcols = {};
//one_col = {};
For( i = 1, i <= N Items( col_list ), i++,
one_col = col_list[i];
show(one_col, i);
If( Regex( one_col, "(\d+);(\S+)" ) == one_col,
Insert Into( stackcols, one_col )
);
);
resultTable = sourceTable << Stack(
columns( stackcols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
resultTable << setName( (sourceTable << getName) || " Stacked Data" );Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택감사합니다 pmroz. 귀하의 제안에 따라 스크립트를 수정했지만 오류가 발생한 것 같습니다.
Names Default To Here( 1 );
sourceTable = Data Table( "FINAL" );
col_list = sourceTable << get column names( continuous );
stackcols = {};
one_col = {};
For( i = 1, i <= N Items( col_list ), i++,
one_col = col_list[i];
If( Regex( one_col, "(\d+);(\S+)" ) == one_col,
Insert Into( stackcols, one_col )
);
);
resultTable = sourceTable << Stack(
columns( stackcols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
resultTable << setName( (sourceTable << getName) || " Stacked Data" );
/************************************
'Regex' , Regex/*###*/(one_col, "(\d+);(\S+)") 액세스 또는 평가 시 패턴 일치에 알 수 없는 오류가 있습니다.
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택col_list = {"2010;PinShort@CLK", "2011;PinShort@IO", "2012;PinShort@VDD", "Label", "Data"};
stackcols = {};
for (i = 1, i <= nitems(col_list), i++,
one_col = col_list[i];
if (regex(one_col, "(\d+);(\S+)") == one_col,
insertinto(stackcols, one_col);
);
);
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택안녕하세요, 넬슨님,
나는 완전히 이해합니다. 그러나 내 문제는 위에서 언급한 것과 정확히 같습니다. "(\d+);(\S+)" 정규식을 사용하는 매개변수를 사용하여 내 조건으로 "stackCols 목록을 채우는 방법"입니다.
어쨌든 감사합니다. 제가 직접 시행착오를 해보도록 하겠습니다.Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택@OneNorthJMP ,
나는 Ian이 당신에게 보여준 것이 당신이 요구하는 것이라고 믿습니다.Ian이 보여준 것은 JSL에서 스택하려는 열의 이름이 포함된 목록(stackCols)을 만든 다음 스크립트 하단에 있는 코드 조각을 실행하는 것입니다.
resultTable = sourceTable << Stack(columns(stackCols), Source Label Column( "Label" ), Stacked Data Column( "Data" ));
resultTable << setName((sourceTable << getName)||" Stacked Data");
따라서 문제는 stackCols 목록을 채우는 것입니다.이를 수행하는 방법은 필요에 따라 다릅니다.사용하기 쉬울 수도 있어요
stackCols = dt << get column names( continuous );
목록을 채우려면아니면 좀 더 복잡한 방법론이 필요할 수도 있습니다.하지만 Ian이 보여준 것은 현재 데이터 테이블에 있는 모든 데이터로 Stack Platform을 실행하는 것이 얼마나 간단한지입니다.
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택안녕하세요 이안님,
답변 감사합니다. 어쩌면 내 설명이 명확하지 않을 수도 있습니다. JSL 스크립트가 다른 입력 테이블의 다른 매개변수를 적용할 수 있도록 하고 싶습니다.
예를 들어, 입력 테이블 1에는 2개의 열이 있습니다. JSL을 아래와 같이 수정해야 합니다.
Data Table( "FINAL.jmp" ) << Stack(
columns(
:Name( "2010;PinShort@CLK" ),
:Name( "2011;PinShort@IO" ),
:Name( "2012;PinShort@VDD" ),
:Name( "2013;PinShort@LA" ),
:Name( "2014;PinShort@LB" ),
:Name( "2030;PinOpen@CLK" )
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
)
예를 들어, 3개의 열이 있는 경우 테이블 2를 입력합니다. JSL을 아래와 같이 수정해야 합니다.
Data Table( "FINAL.jmp" ) << Stack(
columns( :Name( "2010;PinShort@CLK" ), :Name( "2011;PinShort@IO" ), :Name( "2012;PinShort@VDD" ), ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
)
그렇다면 열이 1000개라면 어떻게 될까요? 그러면 수동으로 하나씩 입력해야 하나요? 아니면 수동으로 합니까? 네, 물론 수동으로 할 수 있습니다. 하지만 그건 내 목표가 아닙니다. 입력 테이블이 무엇이든 관계없이 "(\d+);(\S+)" 매개변수 스택을 찾기 위해 정규식을 읽을 수 있는 스크립트를 갖고 싶습니다.
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택세부 사항은 '내 테이블은 동적이다'라고 말할 때 정확히 무엇을 의미하는지, 얼마나 많은 지능이 필요한지에 따라 달라집니다.
그러나 예를 들어 JMP 생성 코드를 약간 변경하면 다음과 같은 결과가 나올 수 있습니다.
NamesDefaultToHere(1);
sourceTable = DataTable("FINAL");
stackCols =
{
:Name( "2010;PinShort@CLK" ),
:Name( "2011;PinShort@IO" ),
:Name( "2012;PinShort@VDD" ),
:Name( "2013;PinShort@LA" ),
:Name( "2014;PinShort@LB" ),
:Name( "2030;PinOpen@CLK" ),
:Name( "2031;PinOpen@IO" ),
:Name( "2032;PinOpen@VDD" ),
:Name( "2033;PinOpen@LA" ),
:Name( "2034;PinOpen@LB" ),
:Name( "2200;Ana_Idd_noClock@VDD" ),
:Name( "2360;Dig_ATE_FUN_00_001_Authenticate" ),
:Name( "2361;Dig_ATE_FUN_00_003_DisableReset" ),
:Name( "2380;Dig_ATE_FUN_00_004_GetVersion" ),
:Name( "2440;SyncPulse_and_capResponse_0x90" ),
:Name( "2441;Ana_Pads_ATE_VOL_0uA@IO" ),
:Name( "2442;Ana_Pads_ATE_VOH_0uA@IO" ),
:Name( "2443;Ana_Pads_ATE_VOL_0uA_IDD@VDD" ),
:Name( "2444;Ana_Pads_ATE_VOL_0uA_Rcont_GND@VSS" )
};
resultTable = sourceTable << Stack(columns(stackCols), Source Label Column( "Label" ), Stacked Data Column( "Data" ));
resultTable << setName((sourceTable << getName)||" Stacked Data");
'sourceTable' 및 'stackCols'의 값은 사용자 인터페이스 또는 일부 더 큰 JSL 스크립트에 의해 설정됩니다.
Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택안녕하세요 이안님,
나는 이것을 이미 알고 있습니다. 내 테이블은 역동적입니다. 다른 데이터 테이블이 있을 때마다 스크립트를 수정하고 싶지 않습니다. 하지만 내 매개변수 데이터 형식은 수정되었습니다. 따라서 이를 JSL로 코딩하는 지능적인 방법이어야 합니다.Re: JSL을 사용하여 조건이 포함된 다중 매개변수 스택가능하다면 JMP가 작업을 수행하도록 하는 것이 좋습니다. 일반적으로 작업은 '직접' 한 번만 수행한 다음 JMP가 자동으로 생성하는 코드를 사용하면 됩니다.
이 경우 '테이블 > 스택'을 수행하면 다음과 같습니다.

'확인'을 누르면 '소스'라는 저장된 스크립트가 있는 새 테이블이 제공됩니다. 연관된 녹색 '실행' 아이콘을 마우스 오른쪽 버튼으로 클릭하면 '편집'을 선택할 수 있으며, 그러면 다음 스크립트가 제공됩니다.
Data Table( "FINAL.jmp" ) << Stack(
columns(
:Name( "2010;PinShort@CLK" ),
:Name( "2011;PinShort@IO" ),
:Name( "2012;PinShort@VDD" ),
:Name( "2013;PinShort@LA" ),
:Name( "2014;PinShort@LB" ),
:Name( "2030;PinOpen@CLK" ),
:Name( "2031;PinOpen@IO" ),
:Name( "2032;PinOpen@VDD" ),
:Name( "2033;PinOpen@LA" ),
:Name( "2034;PinOpen@LB" ),
:Name( "2200;Ana_Idd_noClock@VDD" ),
:Name( "2360;Dig_ATE_FUN_00_001_Authenticate" ),
:Name( "2361;Dig_ATE_FUN_00_003_DisableReset" ),
:Name( "2380;Dig_ATE_FUN_00_004_GetVersion" ),
:Name( "2440;SyncPulse_and_capResponse_0x90" ),
:Name( "2441;Ana_Pads_ATE_VOL_0uA@IO" ),
:Name( "2442;Ana_Pads_ATE_VOH_0uA@IO" ),
:Name( "2443;Ana_Pads_ATE_VOL_0uA_IDD@VDD" ),
:Name( "2444;Ana_Pads_ATE_VOL_0uA_Rcont_GND@VSS" )
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
)
이 스크립트를 더 스마트하게 만들 수 있지만 새 행을 추가하기만 하면 제대로 작동합니다(필요한 열이 여전히 소스 테이블에 있는 한).