cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
Jackie_
Level VI

Evaluation column name from the list

Hi,

 

I've a list which contains numeric row values. I want to generate Variability plot based on the row values in list. I tried using Eval but something doesn't seem to work. Can someone assist?

Here's my code

Names Default To Here( 1 );
Clear Globals();

dt = Data Table( "Untitled 910" );

dt2 = Data Table( "Soft Bin Summary" );

dad = dt2<< get column names(strings);

r = dt << Get Rows Where( :Yield AlertType == "Wafer" );
bin = dt:Yield iBin[r];
Isocol = {};

For(i = 1, i <= N Items(bin), i++,
 
	Insert Into(Isocol, Char(bin[i])));

aa_refs = Associative Array( dt:Yield iBin[r], dt:Yield fLimit[r] );



vc2 = dt2 << Variability Chart(
	Y( Eval((Isocol))  ),
	X( :WaferID ),
	Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
	Show Range Bars( 0 ),
	Std Dev Chart( 0 ),
	Points Jittered( 1 ), 

);

For( i = 1, i <= N Items( Isocol ), i++,
If( Contains( aa_refs, Isocol[i] ),
Report( vc2[i] )[Framebox( 1 )] << DispatchSeg( CustomStreamSeg( 3 ), {Line Width( 2 )} );
Report( vc2[i] )[AxisBox( 1 )] << {Add Ref Line( aa_refs[Isocol[i]], "Solid", "Dark Green", "T", 2 )};
)
);
1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Evaluation column name from the list

If I delete the "0" from Isocol I do get Variability charts created just fine?

For lines you are comparing characters and numeric values and Contains won't find any matches. Also for some reason you have to divide your aa_ref values by 100

Names Default To Here(1);

dt = Data Table("Untitled 910");
dt2 = Data Table("Soft Bin Summary");

dad = dt2 << get column names(strings);

r = dt << Get Rows Where(:Yield AlertType == "Wafer");
bin = dt:Yield iBin[r];
Isocol = {};

// 0 is last value, so we won't include it
For(i = 1, i < N Items(bin), i++, 
	Insert Into(Isocol, Char(bin[i]))
);

aa_refs = Associative Array(bin, dt:Yield fLimit[r]);

vc2 = dt2 << Variability Chart(
	Y(Eval((Isocol))),
	X(:WaferID),
	Analysis Type("Choose best analysis (EMS REML Bayesian)"),
	Show Range Bars(0),
	Std Dev Chart(0),
	Points Jittered(1), 
);

For(i = 1, i < N Items(Isocol), i++,
	If(Contains(aa_refs, Num(Isocol[i])),
		Report(vc2[i])[Framebox(1)] << DispatchSeg(CustomStreamSeg(3), {Line Width(2)});
		Report(vc2[i])[AxisBox(1)] << {Add Ref Line(aa_refs[Num(Isocol[i])] / 100, "Solid", "Dark Green", "T", 2)};
	)
);
-Jarmo

View solution in original post

4 REPLIES 4
jthi
Super User

Re: Evaluation column name from the list

You have one "column" in Isocol which isn't found from dt2, "0".

-Jarmo
Jackie_
Level VI

Re: Evaluation column name from the list

We can neglect that 0 value

jthi
Super User

Re: Evaluation column name from the list

If I delete the "0" from Isocol I do get Variability charts created just fine?

For lines you are comparing characters and numeric values and Contains won't find any matches. Also for some reason you have to divide your aa_ref values by 100

Names Default To Here(1);

dt = Data Table("Untitled 910");
dt2 = Data Table("Soft Bin Summary");

dad = dt2 << get column names(strings);

r = dt << Get Rows Where(:Yield AlertType == "Wafer");
bin = dt:Yield iBin[r];
Isocol = {};

// 0 is last value, so we won't include it
For(i = 1, i < N Items(bin), i++, 
	Insert Into(Isocol, Char(bin[i]))
);

aa_refs = Associative Array(bin, dt:Yield fLimit[r]);

vc2 = dt2 << Variability Chart(
	Y(Eval((Isocol))),
	X(:WaferID),
	Analysis Type("Choose best analysis (EMS REML Bayesian)"),
	Show Range Bars(0),
	Std Dev Chart(0),
	Points Jittered(1), 
);

For(i = 1, i < N Items(Isocol), i++,
	If(Contains(aa_refs, Num(Isocol[i])),
		Report(vc2[i])[Framebox(1)] << DispatchSeg(CustomStreamSeg(3), {Line Width(2)});
		Report(vc2[i])[AxisBox(1)] << {Add Ref Line(aa_refs[Num(Isocol[i])] / 100, "Solid", "Dark Green", "T", 2)};
	)
);
-Jarmo
Jackie_
Level VI

Re: Evaluation column name from the list

Thanks @jthi . I am still trying to get ref line fixed