<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Scripting a Gauge R&amp;amp;R issue in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/58025#M32256</link>
    <description>Amazing and it works.&lt;BR /&gt;thanks for your sharing.&lt;BR /&gt;</description>
    <pubDate>Thu, 24 May 2018 01:15:37 GMT</pubDate>
    <dc:creator>Fiona0723</dc:creator>
    <dc:date>2018-05-24T01:15:37Z</dc:date>
    <item>
      <title>Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57744#M32139</link>
      <description>&lt;P&gt;as below JMP script is for Gauge R&amp;amp;R 5 sigma&lt;BR /&gt;but in my Variability Chart ,I always got one first item can set up successfully on Gauge RR 5 sigma.&lt;/P&gt;&lt;P&gt;i don;t understand, why i can;t get all of "y list " item on 5 sigma.&lt;/P&gt;&lt;P&gt;anyone can help me?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class=" language-jsl"&gt;&lt;CODE class="  language-jsl"&gt;rezults &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Column Dialog&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;
title&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Select Columns For Gauge R&amp;amp;R Analysis"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
yycol &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; ColList&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Y, Response"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; Mincol&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; DataType&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; Numeric &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
xxcol &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; ColList&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"X, Factor"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; Mincol&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; Modeling &lt;SPAN class="token function"&gt;Type&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; Nominal &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
bbycol &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; ColList&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"By"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
ylist &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; rezults&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"yycol"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
xlist &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; rezults&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"xxcol"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
bbylist &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; rezults&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"bbycol"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
N &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;N Items&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; ylist &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;For&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; i &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; i &lt;SPAN class="token operator"&gt;&amp;lt;=&lt;/SPAN&gt; N&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; i&lt;SPAN class="token operator"&gt;++&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
s &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; dt &lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token messages"&gt; Get Property&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Spec Limits"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
usl &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; s&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"USL"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
lsl &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; s&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"LSL"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
obj &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; Variability Chart&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;
Y&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Eval&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; ylist &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
X&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Eval&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; xlist &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
By&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Eval&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; bbylist &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Model&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Main Effect"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Max Iter&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;100&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Conv Limit&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0.00000001&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Number Integration Abscissas&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;128&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Number Function Evals&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;65536&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Analysis &lt;SPAN class="token function"&gt;Type&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Choose best analysis (EMS REML)"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Historical &lt;SPAN class="token function"&gt;Mean&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
Historical Sigma&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
&lt;SPAN class="token comment"&gt;//Process Variation( 0 ),&lt;/SPAN&gt;
Std Dev Chart&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
obj &lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token messages"&gt; Gauge RR&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;5&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; usl &lt;SPAN class="token operator"&gt;-&lt;/SPAN&gt; lsl&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; lsl&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; usl &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 May 2018 07:13:56 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57744#M32139</guid>
      <dc:creator>Fiona0723</dc:creator>
      <dc:date>2018-05-21T07:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57875#M32183</link>
      <description>&lt;P&gt;You didn't have dt defined but I assume you had it defined separately. But even so, you were using this command in the loop:&lt;/P&gt;&lt;PRE class="  language-jsl"&gt;&lt;CODE class="  language-jsl"&gt;s &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; dt &lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="token messages"&gt; Get Property&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"Spec Limits"&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;This doesn't work (assuming dt is a data table) because the spec limits are a property of a column, not the data table. See below for how to reference the column and access the spec limits property. I've added a dt = current data table() line.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, the column dialog() command is deprecated (I think) and replaced by the new window() command which uses a whole host of display boxes including "filter col selector()", "col list box()", and "button box()". If you're just starting out you might consider switching. Up to you, but just consider switching vs creating lots of scripts with deprecated features.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;dt = current data table();

rezults = Column Dialog(
	title( "Select Columns For Gauge R&amp;amp;R Analysis" ),
	yycol = ColList( "Y, Response", Mincol( 1 ), DataType( Numeric ) ),
	xxcol = ColList( "X, Factor", Mincol( 1 ), Modeling Type( Nominal ) ),
	bbycol = ColList( "By" )
);
ylist = rezults["yycol"];
xlist = rezults["xxcol"];
bbylist = rezults["bbycol"];
N = N Items( ylist );
For( i = 1, i &amp;lt;= N, i++,
	s = &lt;FONT color="#FF0000"&gt;column(dt, ylist[N])&lt;/FONT&gt; &amp;lt;&amp;lt; Get Property( "Spec Limits" );
	usl = s["USL"];
	lsl = s["LSL"];
);
obj = Variability Chart(
	Y( Eval( ylist ) ),
	X( Eval( xlist ) ),
	By( Eval( bbylist ) ),
	Model( "Main Effect" ),
	Max Iter( 100 ),
	Conv Limit( 0.00000001 ),
	Number Integration Abscissas( 128 ),
	Number Function Evals( 65536 ),
	Analysis Type( "Choose best analysis (EMS REML)" ),
	Historical Mean( 0 ),
	Historical Sigma( 0 ), 
//Process Variation( 0 ),
	Std Dev Chart( 0 ),

);
obj &amp;lt;&amp;lt; Gauge RR( 5, usl - lsl, lsl, usl );&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 22 May 2018 15:37:05 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57875#M32183</guid>
      <dc:creator>mikedriscoll</dc:creator>
      <dc:date>2018-05-22T15:37:05Z</dc:date>
    </item>
    <item>
      <title>Re: Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57884#M32188</link>
      <description>&lt;P&gt;Here's the re-write. If for no other reason the recall feature makes things easier to debug.&lt;/P&gt;&lt;P&gt;Edit: Don't use this version. There are issues with the s, lsl, and usl variables being stale and it also doesn't address the OP's issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;//clear log();
namespace("here")&amp;lt;&amp;lt;remove(namespace("here")&amp;lt;&amp;lt;getkeys);
names default to here(1);
dt = current data table();

showErrorMsg = expr(New Window("Must select at least one column...",&amp;lt;&amp;lt;Modal, textBox("Must select at least one column in Y and X roles.               "),
ButtonBox("OK")));

//grrFunction = Function({ylist, xlist, bbylist},	// pass GUI variables to locals here, downside is can't hover to observe values
grrFunction = Function({x}, // x not used here, just using the variables from the GUI and re-assinging to existing vars

	ylist = yParamNames;
	xlist = xParamNames;
	bbylist = byParamNames;

	N = N Items( ylist );
	For( i = 1, i &amp;lt;= N, i++,
		s = column(dt, ylist[i]) &amp;lt;&amp;lt; Get Property( "Spec Limits" );
		usl = s["USL"];
		lsl = s["LSL"];
	);
	obj = Variability Chart(
		Y( Eval( ylist ) ),
		X( Eval( xlist ) ),
		By( Eval( bbylist ) ),
		Model( "Main Effect" ),
		Max Iter( 100 ),
		Conv Limit( 0.00000001 ),
		Number Integration Abscissas( 128 ),
		Number Function Evals( 65536 ),
		Analysis Type( "Choose best analysis (EMS REML)" ),
		Historical Mean( 0 ),
		Historical Sigma( 0 ), 
	//Process Variation( 0 ),
		Std Dev Chart( 0 ),
	);
	obj &amp;lt;&amp;lt; Gauge RR( 5, usl - lsl, lsl, usl );	

);

nw = new window("Select Columns For Gauge R&amp;amp;R Analysis",
	hlistbox( // horizontal list box
		cflObj = filter col selector(data table(dt &amp;lt;&amp;lt; get name()), nlines(20)),	//first item in hlist box
		
		panelbox( "Cast selected columns into roles",						// second item
			lineupbox(ncol(2),
					bb_y = buttonbox("Y, Response",
						newParams = cflObj &amp;lt;&amp;lt; get selected;
						yColObj &amp;lt;&amp;lt; append(newParams);
					),
					yColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),numeric,nlines(5), min items(1)),
					
					bb_x = buttonbox("X, Factor",
						newParams = cflObj &amp;lt;&amp;lt; get selected;
						xColObj &amp;lt;&amp;lt; append(newParams);
					),
					xColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),nlines(3), min items(1), &amp;lt;&amp;lt;Set Analysis Type(Nominal)),
					
					bb_by = buttonbox("By",
						newParams = cflObj &amp;lt;&amp;lt; get selected;
						byColObj &amp;lt;&amp;lt; append(newParams);
					),
					byColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),nlines(3))
			)// end lineupbox 
		)// end roles panel box
		,
		panelbox("Actions",													// final item
			vlistbox(
				button box("Ok",
						yParamNames = yColObj &amp;lt;&amp;lt; get items;
						xParamNames = xColObj &amp;lt;&amp;lt; get items;
						byParamNames = byColObj &amp;lt;&amp;lt; get items;
						
						if ( nitems(yParamNames) == 0 | nitems(xParamNames) == 0  ,
							showErrorMsg
						,
							//else
							new namespace("recall_grr");
							recall_grr:yParamNames_rcl = yColObj &amp;lt;&amp;lt; get items;
							recall_grr:xParamNames_rcl = xColObj &amp;lt;&amp;lt; get items;
							recall_grr:byParamNames_rcl = byColObj &amp;lt;&amp;lt; get items;
							nw &amp;lt;&amp;lt; close window; 
							//grrFunction(yParamNames, xParamNames, byParamNames)		//pass to local
							grrFunction(1)		// use these 3 (above) vars directly without passing
						);

				),
				button box("Remove", yColObj &amp;lt;&amp;lt; remove selected; xColObj &amp;lt;&amp;lt; remove selected; byColObj &amp;lt;&amp;lt; remove selected),
				button box("Cancel", nw &amp;lt;&amp;lt; close window),
				spacerbox(Size(1,80)),
				button box("Recall",
					try(yColObj &amp;lt;&amp;lt; append(recall_grr:yParamNames_rcl));
					try(xColObj &amp;lt;&amp;lt; append(recall_grr:xParamNames_rcl));
					try(byColObj &amp;lt;&amp;lt; append(recall_grr:byParamNames_rcl));
					
				)
			)
		)//end actions panel box
	) // end hlistbox
);//end new window nw&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 13:56:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57884#M32188</guid>
      <dc:creator>mikedriscoll</dc:creator>
      <dc:date>2018-05-23T13:56:35Z</dc:date>
    </item>
    <item>
      <title>Re: Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57932#M32211</link>
      <description>&lt;P&gt;thanks for your reply,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I still meet issue in here&lt;/P&gt;&lt;P&gt;after I ran script then i got variablity Gauge chart then&lt;/P&gt;&lt;P&gt;1 st item on Gauge R&amp;amp;R&amp;nbsp; = &amp;gt; can show 5K in VC chart. it is correct&lt;/P&gt;&lt;P&gt;but 2nd item on Gauge R&amp;amp;R result =&amp;gt; it is showing "6K" in VC chart.&lt;/P&gt;&lt;P&gt;i wnat all of ylist item be caluate 5K in Guage R&amp;amp;R&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/949"&gt;@mikedriscoll&lt;/a&gt;&amp;nbsp;Do you have any better idea in here?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 08:32:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57932#M32211</guid>
      <dc:creator>Fiona0723</dc:creator>
      <dc:date>2018-05-23T08:32:35Z</dc:date>
    </item>
    <item>
      <title>Re: Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57943#M32218</link>
      <description>&lt;P&gt;Ignore the original version of this reply. I'm going to go with the 'it was before my morning coffee excuse'.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try this.&amp;nbsp; A couple corrections. The s, lsl, usl were not stored in a list in previous posts so the values were stale. fixed here. I inadvertantly used the "N" as the iterating parameter instead of i. Fixed here. Definitely double check this is doing what you want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;//clear log();
namespace("here")&amp;lt;&amp;lt;remove(namespace("here")&amp;lt;&amp;lt;getkeys);
names default to here(1);
dt = current data table();

showErrorMsg = expr(New Window("Must select at least one column...",&amp;lt;&amp;lt;Modal, textBox("Must select at least one column in Y and X roles.               "),
ButtonBox("OK")));

//grrFunction = Function({ylist, xlist, bbylist},    // pass GUI variables to locals here, downside is can't hover to observe values
grrFunction = Function({x}, // x not used here, just using the variables from the GUI and re-assinging to existing vars

    ylist = yParamNames;
    xlist = xParamNames;
    bbylist = byParamNames;

    N = N Items( ylist );

    nwOutput = new window("Output",
        vlb_out = vlistbox();
    );
    For( i = 1, i &amp;lt;= N, i++,
        s = column(dt, ylist[i]) &amp;lt;&amp;lt; Get Property( "Spec Limits" );    // note that I had a typo here, should be i, not N
        usl = s["USL"];
        lsl = s["LSL"];

        //obj = Variability Chart(
        vlb_out &amp;lt;&amp;lt; append(
            Variability Chart(
                Y( Eval( ylist[i] ) ),
                X( Eval( xlist ) ),
                By( Eval( bbylist ) ),
                Model( "Main Effect" ),
                Max Iter( 100 ),
                Conv Limit( 0.00000001 ),
                Number Integration Abscissas( 128 ),
                Number Function Evals( 65536 ),
                Analysis Type( "Choose best analysis (EMS REML)" ),
                Historical Mean( 0 ),
                Historical Sigma( 0 ),
            //Process Variation( 0 ),
                Std Dev Chart( 0 ),
                 Gauge RR( 5, usl - lsl, lsl, usl );    
            )//;
        )
    );
//    obj &amp;lt;&amp;lt; Gauge RR( 5, usl - lsl, lsl, usl );    

);

nw = new window("Select Columns For Gauge R&amp;amp;R Analysis",
    hlistbox( // horizontal list box
        cflObj = filter col selector(data table(dt &amp;lt;&amp;lt; get name()), nlines(20)),    //first item in hlist box
        
        panelbox( "Cast selected columns into roles",                        // second item
            lineupbox(ncol(2),
                    bb_y = buttonbox("Y, Response",
                        newParams = cflObj &amp;lt;&amp;lt; get selected;
                        yColObj &amp;lt;&amp;lt; append(newParams);
                    ),
                    yColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),numeric,nlines(5), min items(1)),
                    
                    bb_x = buttonbox("X, Factor",
                        newParams = cflObj &amp;lt;&amp;lt; get selected;
                        xColObj &amp;lt;&amp;lt; append(newParams);
                    ),
                    xColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),nlines(3), min items(1), &amp;lt;&amp;lt;Set Analysis Type(Nominal)),
                    
                    bb_by = buttonbox("By",
                        newParams = cflObj &amp;lt;&amp;lt; get selected;
                        byColObj &amp;lt;&amp;lt; append(newParams);
                    ),
                    byColObj = col list box(data table(dt &amp;lt;&amp;lt; get name()),nlines(3))
            )// end lineupbox
        )// end roles panel box
        ,
        panelbox("Actions",                                                    // final item
            vlistbox(
                button box("Ok",
                        yParamNames = yColObj &amp;lt;&amp;lt; get items;
                        xParamNames = xColObj &amp;lt;&amp;lt; get items;
                        byParamNames = byColObj &amp;lt;&amp;lt; get items;
                        
                        if ( nitems(yParamNames) == 0 | nitems(xParamNames) == 0  ,
                            showErrorMsg
                        ,
                            //else
                            new namespace("recall_grr");
                            recall_grr:yParamNames_rcl = yColObj &amp;lt;&amp;lt; get items;
                            recall_grr:xParamNames_rcl = xColObj &amp;lt;&amp;lt; get items;
                            recall_grr:byParamNames_rcl = byColObj &amp;lt;&amp;lt; get items;
                            nw &amp;lt;&amp;lt; close window;
                            //grrFunction(yParamNames, xParamNames, byParamNames)        //pass to local
                            grrFunction(1)        // use these 3 (above) vars directly without passing
                        );

                ),
                button box("Remove", yColObj &amp;lt;&amp;lt; remove selected; xColObj &amp;lt;&amp;lt; remove selected; byColObj &amp;lt;&amp;lt; remove selected),
                button box("Cancel", nw &amp;lt;&amp;lt; close window),
                spacerbox(Size(1,80)),
                button box("Recall",
                    try(yColObj &amp;lt;&amp;lt; append(recall_grr:yParamNames_rcl));
                    try(xColObj &amp;lt;&amp;lt; append(recall_grr:xParamNames_rcl));
                    try(byColObj &amp;lt;&amp;lt; append(recall_grr:byParamNames_rcl));
                    
                )
            )
        )//end actions panel box
    ) // end hlistbox
);//end new window nw&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jun 2018 13:29:02 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/57943#M32218</guid>
      <dc:creator>mikedriscoll</dc:creator>
      <dc:date>2018-06-13T13:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: Scripting a Gauge R&amp;R issue</title>
      <link>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/58025#M32256</link>
      <description>Amazing and it works.&lt;BR /&gt;thanks for your sharing.&lt;BR /&gt;</description>
      <pubDate>Thu, 24 May 2018 01:15:37 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Scripting-a-Gauge-R-amp-R-issue/m-p/58025#M32256</guid>
      <dc:creator>Fiona0723</dc:creator>
      <dc:date>2018-05-24T01:15:37Z</dc:date>
    </item>
  </channel>
</rss>

