cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
TONYMA
Level III

how to add a new formula with JSL?

all i use the samlpe which named  thickness.JMP to produce a new file  by summary。   but i don not know to how to add one formula  with JSL in summary table。
you are your god.
1 ACCEPTED SOLUTION

Accepted Solutions

Re: how to add a new formula with JSL?

Your formula involves division. It requires numeric data columns for this compuation. Your result is set up for a new column with the character data type. If that is what you want, then wrap the division inside the Char() function to satisfy the data type.

View solution in original post

8 REPLIES 8
TONYMA
Level III

Re: how to add a new formula with JSL?

 
you are your god.
TONYMA
Level III

Re: how to add a new formula with JSL?

 
you are your god.
ih
Super User (Alumni) ih
Super User (Alumni)

Re: how to add a new formula with JSL?

To create the summary table first and then add a formula column to it, save a reference to the table when you create it:

 

//Save reference to the newly created summary table.
dt = Data Table( "Thickness" ) << Summary( Group( :Bar ), N, Mean( :Thickness 01 ) );

//Send a message to the new table to create the new column.
dt <<  New Column( "New formula column",
	Character,
	Formula( 
		If( :Name( "Mean(Thickness 01)" ) > 0.04,
			"normal",
			"thin"
		)
	)
);
TONYMA
Level III

Re: how to add a new formula with JSL?

i want to calculate " Thickness 01/N rows ". JSL is below, that is right? dt << New Column( "New formula column", Character, Formula( :Name( "Thickness 01) / :Name( "N rows"));
you are your god.

Re: how to add a new formula with JSL?

Your formula involves division. It requires numeric data columns for this compuation. Your result is set up for a new column with the character data type. If that is what you want, then wrap the division inside the Char() function to satisfy the data type.

ENTHU
Level IV

Re: how to add a new formula with JSL?

I am stuck with a simialr issue. I perform division operation in one column and then need to transpose the table.Running into issue while I try to do this.

 

dtIn << New Column("Max Size ",Character,format("best",8),Formula(
:Name("Max Size") = (2500/:Min Size))
);


//check for empty columns and delete if any
dt = Current Data Table();
names = dt << Get Column Names();
dt1 = dt << Missing Data Pattern(columns(Eval(names)), invisible);
n = N Row(dt1);
For(i = N Col(dt), i >= 1, i--,
If(Col Sum(Column(dt1, i + 3)) < n,
Remove From(names, i)
)
);
Try(dt << delete columns(names));
Close(dt1, nosave);
//Get all coulmn names
allcolnames = dt << get column names(string);
show(allcolnames);
for (i = 1, i <= nitems(allcolnames), i++,
column(dt, allcolnames[i]) << data type(Character,"Nominal");
);

 

 

But getting an error becuase of the formula - 

Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, 2500 / /*###*/:Min Size/*###*/
Formula evaluation errors have been ignored

 

txnelson
Super User

Re: how to add a new formula with JSL?

I am assuming that you have a pointer to your data table called

     dtInput

but not one called

     dtIn

 

Jim
ENTHU
Level IV

Re: how to add a new formula with JSL?

That's a typo. I have pointer to data table called dtIn.