参照時にテーブルが空ですこんにちは、みんな!
生成されたデータ テーブルで列を選択し、その列を新しいデータ テーブルに変換しようとしました。 以下は私のコードです:
//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 つのパートを別々にテストしたところ、動作しました。 しかし、パート2を実行する前に毎回パート1のテーブルを保存したくないので、それらをまとめました。 ただし、マージされたスクリプトは機能しません。 この場合、パート 2 で返されたテーブルには欠損値 (Empty()) しかありません。
「show(mat);」を追加しますスクリプトで何が起こったかを確認すると、「mat = Empty();」と表示されます。ログで。 mat の期待値は、パート 1 のデータ テーブルの列 X(n) の各行のようにベクトルである必要があります。
何がうまくいかなかったのかわかりません。 どんな助けでも大歓迎です!
Re: 参照時にテーブルが空です返信してくれてありがとう!Re: 参照時にテーブルが空ですそして報告ありがとう。列関数は、JMP 15 で内部的に <Re: 参照時にテーブルが空です
wait(n) は最善の解決策ではありません。 n が十分に大きいかどうかを知るのは困難です。 JMP はバックグラウンドで表の数式を評価します。 彼らが評価したことを確認する最善の方法は、
ret << RunFormulas;
テーブルを作成した後。 テーブルの数式を待つよりも速く評価します。
Re: 参照時にテーブルが空です私の問題を解決できる解決策を見つけました。2 つの部分の間に「wait(1)」を追加すると機能します。 (参照:
https://community.jmp.com/t5/Discussions/Add-new-column-with-formula-to-data-table-at-certain-position/td-p/14602)。
しかし、なぜこれが機能するのかわかりません... この問題に対処できる他の方法はありますか?
Re: 参照時にテーブルが空ですごめん。 フォーマットに問題が発生した理由がわかりません。 スクリプトの最初の行はコメント化されています...
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 ) ),
);
Re: 参照時にテーブルが空です変数「ret」への参照が表示されません。コードの後半では ret が使われていますが、前半では使われていません……。