목록 반복, 탭 상자 생성, 그래프 빌더 플롯안녕,
목록을 반복하여 탭 상자를 만들고 그래프 빌더의 목록에 저장된 변수를 추가하려고 합니다. 내 jsl 코드에 뭔가 잘못된 것 같습니다. 어떤 제안이 있으십니까?
내가 원하는 것은 다음과 같습니다. 각 탭에 대해 X의 각 목록에서 열을 추가합니다.

dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
List1 = {"NPN1", "PNP1", "PNP2", "NPN2", "PNP3", "IVP1"};
List2 = {"PNP4", "NPN3", "IVP2", "NPN4", "SIT1"};
List3 = {"INM1", "INM2", "VPM1", "VPM2", "VPM3"};
List4 = {"SNM1", "SPM1", "NPN5", "EP2", "ZD6"};
var expr1 = Expr( Variables() );
For( c = 1, c <= N Items( List1 ), c++,
x expr1 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr1, List1[c], 1 );
Insert Into( var expr1, Name Expr( x expr1 ) );
);
var expr2 = Expr( Variables() );
For( c = 1, c <= N Items( List2 ), c++,
x expr2 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr2, List2[c], 1 );
Insert Into( var expr2, Name Expr( x expr2 ) );
);
var expr3 = Expr( Variables() );
For( c = 1, c <= N Items( List3 ), c++,
x expr3 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr3, List3[c], 1 );
Insert Into( var expr3, Name Expr( x expr3 ) );
);
var expr4 = Expr( Variables() );
For( c = 1, c <= N Items( List4 ), c++,
x expr4 = Expr(
X( Position( 1 ), Combine( "Parallel Merged" ) )
);
Insert Into( x expr4, List4[c], 1 );
Insert Into( var expr4, Name Expr( x expr4 ) );
);
lists = {"List1", "List2", "List3", "List4"};
var = {};
For( i = 1, i <= 20, i++,
Insert Into( var, Parse( "var expr" || Char( i ) ) );
Insert Into( gbv, Parse( "vvv" || Char( i ) ) )
;
);
New Window( "Plots",
Show Menu( 0 ),
show toolbars( 0 ),
tb = Tab Box()
);
For( i = 1, i <= N Items( lists ), i++,
tb << Add(
lists[i],
V List Box(
H List Box(
gb1 = Eval Expr(
dt << Graph Builder(
Size( 1117, 781 ),
Show Control Panel( 0 ),
////something is not correct here?????
Expr( Name Expr( var[i] ) ),
Elements(
Histogram(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 2 ),
),
Box Plot(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 3 ),
Outliers( 0 )
)
)
)
),
gb1,
Tabulate(
Show Control Panel( 0 ),
Set Format( Uniform Format( 10, 2 ) ),
Add Table(
Column Table( Statistics( Mean, Std Dev ) ),
Row Table(
Analysis Columns(
Eval( Parse( lists[i] ) )
)
)
)
)
)
)
);
);
감사해요,
재키
자동화 및 스크립팅데이터 탐색 및 시각화Re: 목록 반복, 탭 상자 생성, 그래프 빌더 플롯표현식이 올바르게 작성되었는지 확인하셨나요? 먼저 하나의 목록으로 작동하도록 시도한 다음 작동하면 다른 목록을 추가하십시오. 이 오류로 인해 스크립트를 실행할 수 없습니다.

Can insert only into an L-value in access or evaluation of 'Insert Into' , Insert Into/*###*/(gbv, Parse("vvv" || Char(i)))
at line 58 in \Script.jslRe: 목록 반복, 탭 상자 생성, 그래프 빌더 플롯@jthi
이 표현식은 하나의 목록에서 작동하지만 루프에 추가하려고 하면 작동하지 않습니다.
Eval(
Substitute(
Expr(
gb2 = dt << Graph Builder(
Size( 1117, 781 ),
Show Control Panel( 0 ),
vvv1,
Elements(
Histogram(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 2 ),
),
Box Plot(
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
X( 8 ),
X( 9 ),
X( 10 ),
X( 11 ),
X( 12 ),
X( 13 ),
X( 14 ),
X( 15 ),
X( 16 ),
X( 1 ),
Legend( 3 ),
Outliers( 0 )
)
)
)
),
Expr( vvv1 ), Name Expr( var expr1 )
)
);
tabu = Tabulate(
Show Control Panel( 0 ),
Set Format( Uniform Format( 10, 2 ) ),
Add Table(
Column Table( Statistics( Mean, Std Dev ) ),
Row Table(
Analysis Columns(
Eval(List1)
)
)
)
)
Re: 목록 반복, 탭 상자 생성, 그래프 빌더 플롯안녕 @마크_베일리
아래 토론에서 제안하신 표현을 사용해 보았지만 뭔가 작동하지 않는 것 같습니다. 이에 대한 해결 방법이 있나요?
Graph Builder에서 변수 열 목록을 Y축으로 사용 - JMP User Community
Re: 목록 반복, 탭 상자 생성, 그래프 빌더 플롯변수 이름에 대한 구문 분석을 사용하지 않고 추적해야 할 목록이 너무 많아지지 않도록 스크립트를 다시 작성할 가능성이 높습니다(JMP16+가 있는 경우 For Each를 사용하는 것이 일반적으로 For보다 낫습니다). 몇 가지 수정을 했는데 이제 작동할 수도 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
List1 = {"NPN1", "PNP1", "PNP2", "NPN2", "PNP3", "IVP1"};
List2 = {"PNP4", "NPN3", "IVP2", "NPN4", "SIT1"};
List3 = {"INM1", "INM2", "VPM1", "VPM2", "VPM3"};
List4 = {"SNM1", "SPM1", "NPN5", "EP2", "ZD6"};
var expr1 = Expr(Variables());
For(c = 1, c <= N Items(List1), c++,
x expr1 = Expr(
X(Position(1), Combine("Parallel Merged"))
);
Insert Into(x expr1, List1[c], 1);
Insert Into(var expr1, Name Expr(x expr1));
);
var expr2 = Expr(Variables());
For(c = 1, c <= N Items(List2), c++,
x expr2 = Expr(
X(Position(1), Combine("Parallel Merged"))
);
Insert Into(x expr2, List2[c], 1);
Insert Into(var expr2, Name Expr(x expr2));
);
var expr3 = Expr(Variables());
For(c = 1, c <= N Items(List3), c++,
x expr3 = Expr(
X(Position(1), Combine("Parallel Merged"))
);
Insert Into(x expr3, List3[c], 1);
Insert Into(var expr3, Name Expr(x expr3));
);
var expr4 = Expr(Variables());
For(c = 1, c <= N Items(List4), c++,
x expr4 = Expr(
X(Position(1), Combine("Parallel Merged"))
);
Insert Into(x expr4, List4[c], 1);
Insert Into(var expr4, Name Expr(x expr4));
);
lists = {"List1", "List2", "List3", "List4"};
var = {};
gbv = {};
For(i = 1, i <= 4, i++,
Insert Into(var, Name Expr(Eval(Parse("var expr" || Char(i)))));
Insert Into(gbv, Parse("vvv" || Char(i)));
);
nw = New Window("Plots",
Show Menu(0),
show toolbars(0),
tb = Tab Box()
);
For(i = 1, i <= N Items(lists), i++,
tb << Add(
lists[i],
V List Box(
H List Box(
Eval(Eval Expr(
dt << Graph Builder(
Size(1117, 781),
Show Control Panel(0),
////something is not correct here?????
Expr(Name Expr(var[i])),
Elements(
Histogram(
X(2),
X(3),
X(4),
X(5),
X(6),
X(7),
X(8),
X(9),
X(10),
X(11),
X(12),
X(13),
X(14),
X(15),
X(16),
X(1),
Legend(2),
),
Box Plot(
X(2),
X(3),
X(4),
X(5),
X(6),
X(7),
X(8),
X(9),
X(10),
X(11),
X(12),
X(13),
X(14),
X(15),
X(16),
X(1),
Legend(3),
Outliers(0)
)
)
)
)),
Tabulate(
Show Control Panel(0),
Set Format(Uniform Format(10, 2)),
Add Table(
Column Table(Statistics(Mean, Std Dev)),
Row Table(
Analysis Columns(
Eval(Parse(lists[i]))
)
)
)
)
)
)
);
);Re: 목록 반복, 탭 상자 생성, 그래프 빌더 플롯고마워요 자르모!