大家好!
我試圖在生成的數據表中選擇一列並將該列轉換為新的數據表。 以下是我的代碼:
//part 1: generate a data table<BR />ret = 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</img> ) ),
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
<STRONG>mat = Column(ret,"X(n)")[1];
show(mat);</STRONG>
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] );
);
當我通過將結果表保存在第 1 部分中然後運行第 2 部分來分別測試這兩個部分時,它可以工作。 但是我不想每次在運行第 2 部分之前都將表格保存在第 1 部分中,所以我將它們放在一起。 但是,合併的腳本不起作用。 在這種情況下,第 2 部分返回的表只有缺失值 (Empty())。
我添加“顯示(墊);”在腳本中查看發生了什麼,它顯示“mat = Empty();”在日誌中。 mat 的期望值應該是第 1 部分中數據表的 X(n) 列的每一行中的向量。
我不知道出了什麼問題。 任何幫助,將不勝感激!
並感謝您的報告;列函數將在 JMP 15 內部執行 <Re: 引用時表為空
wait(n) 不是最好的解決方案;很難知道 n 是否足夠大。 JMP 在後台計算表格公式。 確保他們已評估的最佳方法是
ret << RunFormulas;
建表後。 它將比等待它們更快地評估表格的公式。
對不起。 不知道為什麼格式有問題。 腳本的第一行被註釋...
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</img> ) ),
Set Selected,
),
New Column( "steady state",
Expression,
"None",
Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),
),
New Column( "States", Character, Values( names ) ),
);
我沒有看到對變量“ret”的引用。後半段代碼使用了ret,但前半段沒有......