How to create variable names depending on loop number<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hello
I am trying to create variables dynamically depending on the number of times my loop runs. How can I go about doing this?
Example
for(i=1, i
//some code goes here
var || i = current data table(); //This obviously does not work, but I hope you get the idea. I would eventually like to have var1, var2, var3, etc... till the loop is done
)
Does this make sense?
thanks
Re: How to create variable names depending on loop numberWhy create a new variable for each reference? Why not store the data table reference in a list for access by index or an associative array for access by key?
Re: How to create variable names depending on loop numberoh nice .... thank you very much. Another thing I need to learn in JMP ...
Re: How to create variable names depending on loop numberYes enclose each variable with ^ ... ^ and have the jsl statement enclosed in the Eval( Parse( Eval Insert("\[ ... ]\"))) pattern.
For example, the following code sets spec limits for a column:
Open("$SAMPLE_DATA/Big Class.jmp");
cHeight = Column("height");
Column("height") << Set Property( "Spec Limits", {LSL(55), USL(75), Target(65)} );
Let's say we have the following variable assignments that we would like to use:
colName = "height";
lower = 55;
upper = 75;
target = 40;
Then we can write:
Eval( Parse( Eval Insert("\[
Column("^colName^") << Set Property( "Spec Limits", {LSL(^lower^), USL(^upper^), Target(^target^)} );
]\")))
-Dave
Re: How to create variable names depending on loop numberDave,
I've never seen that syntax before, do the ^ surround any variable to include in text? I would have written:
tmp = "var" || char(i) || " = Current Data Table()";
eval(parse(tmp))
This is obviously less efficient than what you've written.
Re: How to create variable names depending on loop numberWasn't there a talk on this at the Advanced Scripting Panel discussion at the JMP Discovery conference Last week? It was a great seminar, I wonder if the author posted any notes on his talk.
Re: How to create variable names depending on loop numberthanks guys!
Re: How to create variable names depending on loop numberHere is an alternate notation:
For( i = 1, i <= x, i++,
Eval( Parse( Eval Insert( "\[
var^i^ = Current Data Table()
]\" ) ) )
)
-Dave
Re: How to create variable names depending on loop numberAbdulj,
Here is one way using Eval ( Substitute ( ))
// dv = dummy variable
x = 10;
For( i = 1, i <= x, i++,
Eval(
Substitute(
Expr(
dv_variable = i;
Show( dv_variable );
),
Expr( dv_variable ), Parse( "Variable Name " || Char( i ) )
)
)
);
Michael