Recorrer la lista, crear un cuadro de pestaña, gráfico del generador de gráficosHola,
Estoy intentando recorrer la lista para crear un cuadro de pestaña y agregar variables almacenadas en la lista en el generador de gráficos. Algo no parece estar correcto en mi código jsl. ¿Alguna sugerencia?
Esto es lo que quiero: agregar las columnas de cada lista en X para cada pestaña

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] ) )
)
)
)
)
)
)
);
);
Gracias,
Jackie
Automatización y secuencias de comandosExploración y visualización de datosRe: Recorrer la lista, crear cuadro de pestaña, gráfico del generador de gráficos¿Has comprobado que tus expresiones se están construyendo correctamente? Primero intente que funcione con una sola lista y luego agregue otras cuando funcione. No puedo ejecutar el script debido a este error

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: Recorrer la lista, crear cuadro de pestaña, gráfico del generador de gráficos@jthi
Esta expresión funciona con una lista, pero si intento agregarla en el bucle, no funciona.
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: Recorrer la lista, crear cuadro de pestaña, gráfico del generador de gráficosHola @Mark_Bailey
Intenté usar la expresión que sugeriste en la discusión a continuación, pero algo no parece funcionar. ¿Alguna solución para esto?
Utilice la lista de variables de columnas como eje Y en Graph Builder - Comunidad de usuarios de JMP
Re: Recorrer la lista, crear cuadro de pestaña, gráfico del generador de gráficosLo más probable es que reescriba el script para evitar usar el análisis de nombres de variables y tener tantas listas de las que debe realizar un seguimiento (también si tiene JMP16+, usar For Each suele ser mejor que For). Hice algunas modificaciones y ahora podría funcionar.
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: Recorrer la lista, crear cuadro de pestaña, gráfico del generador de gráficosGracias Jarmo!