## column reference plot of graph builder

Highlighted

Community Trekker

Joined:

Dec 27, 2016

Thank you for giving amazing suggestions.

I encountered something else and I have always been curious about this. Whenever I come across this, I try to stack to circumvent the problem.

In a graph builder, how to plot without knowing the name of the column

``````collist =fudt<< get column names(string);
qdt=Char(collist[9]); //Assuming I want to plot column number 9 on the Y axis, say for example "Data_ABC"

gbfc = fudt<<Graph Builder(
Size( 1899, 922 ),
Show Control Panel( 0 ),
Variables(
X( :Index ),
X( :Lot, Position( 1 ) ),
X( :Wafers, Position( 1 ) ),
Y( :qdt),// THIS DOESN't WORK - I want to understand the syntax
Color( :temp )
)
Elements( Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 33 ) ) )
);``````

Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions

Community Trekker

Joined:

Sep 15, 2014

Solution
``````dt = Current Data Table();
cdlg = Column Dialog( clist = ColList( "Pick 2 Columns", Min Col( 2 ), Max Col( 2 ) ) );
cols = cdlg["clist"];

newColExpr = Expr( dt << New Column( "Radius", Numeric, Formula( Sqrt( Expr( cols[1] ) ^ 2 + Expr( cols[2]; ) ^ 2 ) ) ) );

Eval( Eval Expr( newColExpr ) );``````

https://community.jmp.com/t5/Discussions/JSL-Creating-formula-using-a-variable-column-name/td-p/942/...

Best
Uday
9 REPLIES

Community Trekker

Joined:

Sep 15, 2014

Solution
``````dt = Current Data Table();
cdlg = Column Dialog( clist = ColList( "Pick 2 Columns", Min Col( 2 ), Max Col( 2 ) ) );
cols = cdlg["clist"];

newColExpr = Expr( dt << New Column( "Radius", Numeric, Formula( Sqrt( Expr( cols[1] ) ^ 2 + Expr( cols[2]; ) ^ 2 ) ) ) );

Eval( Eval Expr( newColExpr ) );``````

https://community.jmp.com/t5/Discussions/JSL-Creating-formula-using-a-variable-column-name/td-p/942/...

Best
Uday

Community Trekker

Joined:

Dec 27, 2016

That was cool. Thank you Uday.

Super User

Joined:

Jun 23, 2011

Your variable qdt points to the name of the column.  It is not a column itself.  You have to reference it using the construct column(fudt, qdt):

``````gbfc = fudt << Graph Builder(
Size( 1899, 922 ),
Show Control Panel( 0 ),
Variables(
X( :Index ),
X( :Lot, Position( 1 ) ),
X( :Wafers, Position( 1 ) ),
Y( Column( fudt, qdt ) ), 	// use column pointed to by the qdt variable
//Y( :qdt),	// THIS DOESN't WORK - I want to understand the syntax
Color( :temp ),

),
Elements( Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 33 ) ) )
);``````

Community Trekker

Joined:

Dec 27, 2016

Interesting. Let me try that syntax. Thank you pmroz

Community Trekker

Joined:

Oct 28, 2011

Uday,

Thanks for your post. Here i can see the fomula code as follows. Can you explan what means cols&#91;1&#93 and  cols&#91;2&#93?

Formula( Sqrt( Expr( cols&#91;1&#93; ) ^ 2 + Expr( cols&#91;2&#93; ) ^ 2 ) )

Community Trekker

Joined:

Sep 15, 2014

@GoodMan,
Thanks for pointing out . I recollected and recalled that from the post . Not the way I would do it .

``````dt = Open( "\$SAMPLE_DATA/Big Class.jmp" );
ColNames = dt << Get Column Names("String");

Stmt = "";
Stmt = ":" || ColNames[2] || "*2";

Eval( Parse( Eval Insert("\[ dt << New Column("Age_Squared",Numeric,Continuous,Formula(^Stmt^)); ]\" ) ) );``````
Best
Uday

Community Trekker

Joined:

Oct 28, 2011

Thanks. Following your new code, go back the the previous example, still i have some problem. Can you help me?

``````dt = Open( "\$SAMPLE_DATA/Big Class.jmp" );
cdlg = Column Dialog( clist = ColList( "Pick 2 Columns", Min Col( 2 ), Max Col( 2 ) ) );
cols = cdlg["clist"];
newColExpr = Expr( dt << New Column( "Radius", Numeric, Formula( Sqrt( Expr( cols ) ^ 2 + Expr( cols) ^ 2 ) ) ) );
Eval( Eval Expr( newColExpr ) );
``````

GM

Community Trekker

Joined:

Oct 28, 2011

Uday,
I checked your previous code again. Now i understand that &#91=[. So now I can figure it out now. Thank you anyway!
GM

Community Manager

Joined:

Jun 23, 2011

Those were meant to be square brackets. I've edited the post and corrected that.
-Jeff