<?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: Automatically change factor settings of a profiler object using a for loop in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767619#M94780</link>
    <description>&lt;P&gt;To debug your script, you can check what the EvalExpr() part does return&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;FactorList = {"SILICA", "SILANE"};
i = 1;
term_expr = Eval Expr(obj &amp;lt;&amp;lt; Term Value(Expr(FactorList[i])(5, Min(-10), Max(6), Lock(1), Show(1))));
show(term_expr);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;it is something like this which is incorrect syntax&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;term_expr = obj &amp;lt;&amp;lt; Term Value("SILICA" &amp;lt;&amp;lt; {5, Min(-10), Max(6), Lock(1), Show(1)});&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And here is one way of dealing this&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Tiretread.jmp");
obj = dt &amp;lt;&amp;lt; Profiler(
	Y(:Pred Formula ABRASION, :Pred Formula MODULUS, :Pred Formula ELONG, :Pred Formula HARDNESS),
	Desirability Functions(1)
);

terms = {"SILICA", "SILANE"};

For Each({term}, terms,
	Eval(Substitute(
		Expr(obj &amp;lt;&amp;lt; Term Value(_term_(5, Min(-10), Max(6), Lock(1), Show(1)))),
		Expr(_term_), Name Expr(AsColumn(dt, term));
	));
);&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 21 Jun 2024 12:21:26 GMT</pubDate>
    <dc:creator>jthi</dc:creator>
    <dc:date>2024-06-21T12:21:26Z</dc:date>
    <item>
      <title>Automatically change factor settings of a profiler object using a for loop</title>
      <link>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767605#M94778</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I would like to automatically change the factor settings of a profiler object. If I address each factor directly it works as expected:&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt &amp;lt;&amp;lt; Profiler(
	Y(
		:Pred Formula ABRASION, :Pred Formula MODULUS, :Pred Formula ELONG,
		:Pred Formula HARDNESS
	),
	Desirability Functions( 1 )
);

//works
obj &amp;lt;&amp;lt; Term Value("SILICA"(5, Min( -10 ), Max( 6 ), Lock( 1 ), Show( 1 ) ));&lt;/CODE&gt;&lt;/PRE&gt;&lt;DIV&gt;However, if I want to loop over all factors to change the respective settings, nothing happens.&amp;nbsp;&lt;BR /&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt &amp;lt;&amp;lt; Profiler(
	Y(
		:Pred Formula ABRASION, :Pred Formula MODULUS, :Pred Formula ELONG,
		:Pred Formula HARDNESS
	),
	Desirability Functions( 1 )
);

//does not work
FactorList = {"SILICA", "SILANE"};
for(i=1, i&amp;lt;=n items(FactorList), i++,
	Eval( 
		Eval Expr( 
			obj &amp;lt;&amp;lt; Term Value(
				Expr(FactorList[i])( 5, Min( -10 ), Max( 6 ), Lock( 1 ), Show( 1 ) )
			)
		)
	)
);&lt;/CODE&gt;&lt;/PRE&gt;Using &lt;EM&gt;Eval(Eval Expr())&lt;/EM&gt; usually solved it when I had similar issues. Sadly, this isn't helping this time.&lt;BR /&gt;Thanks for your help!&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 21 Jun 2024 12:03:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767605#M94778</guid>
      <dc:creator>RMSEBird223</dc:creator>
      <dc:date>2024-06-21T12:03:35Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically change factor settings of a profiler object using a for loop</title>
      <link>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767618#M94779</link>
      <description>&lt;P&gt;Using this method appears to work&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt &amp;lt;&amp;lt; Profiler(
	Y(
		:Pred Formula ABRASION, :Pred Formula MODULUS, :Pred Formula ELONG,
		:Pred Formula HARDNESS
	),
	Desirability Functions( 1 )
);

//does not work
FactorList = {"SILICA", "SILANE"};
for(i=1, i&amp;lt;=n items(FactorList), i++,
	Eval( 
		Parse( 
			"obj &amp;lt;&amp;lt; Term Value(
				\!""||FactorList[i]|| "\!"( 5, Min( -10 ), Max( 6 ), Lock( 1 ), Show( 1 ) )
			);"
		)
	)
);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 21 Jun 2024 12:21:18 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767618#M94779</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2024-06-21T12:21:18Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically change factor settings of a profiler object using a for loop</title>
      <link>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767619#M94780</link>
      <description>&lt;P&gt;To debug your script, you can check what the EvalExpr() part does return&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;FactorList = {"SILICA", "SILANE"};
i = 1;
term_expr = Eval Expr(obj &amp;lt;&amp;lt; Term Value(Expr(FactorList[i])(5, Min(-10), Max(6), Lock(1), Show(1))));
show(term_expr);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;it is something like this which is incorrect syntax&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;term_expr = obj &amp;lt;&amp;lt; Term Value("SILICA" &amp;lt;&amp;lt; {5, Min(-10), Max(6), Lock(1), Show(1)});&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And here is one way of dealing this&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Tiretread.jmp");
obj = dt &amp;lt;&amp;lt; Profiler(
	Y(:Pred Formula ABRASION, :Pred Formula MODULUS, :Pred Formula ELONG, :Pred Formula HARDNESS),
	Desirability Functions(1)
);

terms = {"SILICA", "SILANE"};

For Each({term}, terms,
	Eval(Substitute(
		Expr(obj &amp;lt;&amp;lt; Term Value(_term_(5, Min(-10), Max(6), Lock(1), Show(1)))),
		Expr(_term_), Name Expr(AsColumn(dt, term));
	));
);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 21 Jun 2024 12:21:26 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Automatically-change-factor-settings-of-a-profiler-object-using/m-p/767619#M94780</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2024-06-21T12:21:26Z</dc:date>
    </item>
  </channel>
</rss>

