cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use to use Text Explorer to glean valuable information from text data at April 25 webinar.
Choose Language Hide Translation Bar
View Original Published Thread

table is empty when being referenced

vistacc
Level III

 Hi all!

I tried to select a column in a generated data table and transform that column into a new data table. Following is my code:

 

//part 1: generate a data tableret = New Table( title,
	Add Rows (rowNum),
	New Column( "P", Expression, "Continuous", Formula( pmatrix ) ),
	New Column( "X(n)",
		Expression,
		"None",
		Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :P ) ),
		Set Selected,

	),
	New Column( "steady state",
		Expression,
		"None",
		Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),

	),
	New Column( "States", Character, Values( names ) ),
);
// part 2: select column X(n) and transform it into a new table 
mat = Column(ret,"X(n)")[1];
show(mat);
For(i = 2, i <= N Rows(ret), i++,
	V Concat To(mat,Column(ret,"X(n)")[i]);
);
table = As Table(mat);
names = Column(ret, "States") << get values;
For(i = 1, i <= N Col(table), i++,
	Column(i) << Set Name( names[i] );
);

 When I tested the two parts seperately by saving the result table in part 1 and then running part 2, it works. But I don't want to save the table in part 1 everytime before running part 2 so I put them together. However, the merged script doesn't work. In this case, the table returned by part 2 only has missing values (Empty()).

 

I add "show(mat);" in the script to see what happened and it shows "mat = Empty();" in the log. The expected value of mat should be a vector as in each row of Column X(n) of the data table in part 1.

 

I don't know what went wrong. Any help would be appreciated!

1 ACCEPTED SOLUTION

Accepted Solutions
Craige_Hales
Super User

Re: table is empty when being referenced

wait(n) is not the best solution; it is hard to know if n is big enough. JMP evaluates the table formulas in the background. The best way to make sure they have evaluated is

ret << RunFormulas;

after building the table. It will evaluate the table's formulas faster than waiting for them.

Craige

View solution in original post

6 REPLIES 6
txnelson
Super User


Re: table is empty when being referenced

I do not see the reference to the variable "ret".  In the second half of the code, ret is used, but not in the 1st half......

Jim
vistacc
Level III


Re: table is empty when being referenced

Sorry. Don't know why something went wrong with the format. The first line of the script is commented...

	ret = New Table( 
		Add Rows (rownum),
		New Column( "P", Expression, "Continuous", Formula( ptable << get as matrix ) ),
		New Column( "X(n)",
			Expression,
			"None",
			Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :P ) ),
			Set Selected,

		),
		New Column( "steady state",
			Expression,
			"None",
			Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),

		),
		New Column( "States", Character, Values( names ) ),

	);

 

 

vistacc
Level III


Re: table is empty when being referenced

I found a solution that can solve my problem: adding "wait(1)" between the two parts will work. (reference:

https://community.jmp.com/t5/Discussions/Add-new-column-with-formula-to-data-table-at-certain-positi...

but I don't understand why this works... Is there any other way that can also address this problem?

 

Craige_Hales
Super User

Re: table is empty when being referenced

wait(n) is not the best solution; it is hard to know if n is big enough. JMP evaluates the table formulas in the background. The best way to make sure they have evaluated is

ret << RunFormulas;

after building the table. It will evaluate the table's formulas faster than waiting for them.

Craige
Craige_Hales
Super User


Re: table is empty when being referenced

And thanks for the report; the column function will do the <<runFormulas internally in JMP 15.

Craige
vistacc
Level III


Re: table is empty when being referenced

Thank you for the reply!

Recommended Articles

No recommendations found