数式列を変数に変更する方法最初の式の列を中間結果として使用しています。最終的に2番目の正式なコラムで終わります。2番目の列は、最初の式列の結果を使用しています。
たとえば変数を作成することによって、最初の式列を避ける簡単な方法はありますか。俺の JSL knolodgeはとても基本的なものです。
前もって感謝します。
再:どのように数式の列を変数に変更するのですか?お返事をありがとうございます。
組み合わせ方を教えてください。行列のバージョンを持つcol quantile()行関数?
再:どのように数式の列を変数に変更するのですか?すでに述べたように、Ifステートメント式はNewDataCorr値を取得するために非常にうまく機能します。
新しい列NewDataCorr 2でファイルを更新しました。このコラムでは、あなたのIfステートメント式が使われています。DataTmp列の値を使用する代わりに、DataTmpの式でそれらを表現しました。
(:P1 == 0&:P2 <3の場合、
データロー
)
この場合、DataTmp列を削除しました。 この解決策についてあなたの意見は何ですか?
再:どのように数式の列を変数に変更するのですか?キャメロンのソリューションは100K +行でもかなり速いはずです。
もう1つのことは、col quantile()関数がデータテーブル式の各行に対して評価されることで、これも少し遅くなります。マトリックスバージョンでは、一度だけ評価されます。
再:どのように数式の列を変数に変更するのですか?ファイルexample.jmpをアップロードしました。私の具体的な質問は、wです。コラム:P1、:P2および:DataRawを使用してコラム:DataCorrを取得するには、colum:DataTmpおよび:FlyerTmpを作成しないようにするのが最も良い方法です。
JSLユーザーによると、特にデータセットが大きい場合は、これらの列をリストまたはマート化の助けを借りて計算することをお勧めします。
再:どのように数式の列を変数に変更するのですか?JSLの提案をありがとうございました。 スクリプトをテストしたいのですが。 今はチェックできません(JMPにアクセスできません)。
データポイントが0の場合、データポイントは元のColumn DataRawからどのように扱われるのでしょうか。
再:どのように数式の列を変数に変更するのですか?お返事をありがとうございます。
データ・セットをできるだけ単純にするために、tmp列を削除したいです。サンプルファイルは私の質問に関する非常に基本的なファイルです。実際には、データセットには約10から15の異なるDataRaw列が含まれています。これは同じ方法で準備します。他にもさまざまな列が追加されています。
あなたはFlyerTmpコラムについて正しいです。DataCorr列に含めることができます。私はあなたのファイルを後でチェックします(今のところJMPへのアクセスはありません)。
再:どのように数式の列を変数に変更するのですか?ただ何かを考えた。 分位点を計算する前に、それらのゼロが含まれるため、tempからゼロを削除する必要があります。 あなたはx98の前にこれを実行することによってそれをすることができます。
miss_rows = loc(as list(temp),0);
temp[miss_rows] = .;
新しい列を作成する前に、"final"についても同じことができます。 これで、最後に欠損値を置き換える必要がなくなります。
再:どのように数式の列を変数に変更するのですか?サンプルデータテーブルを掲載していただきありがとうございます。
あなたはいくつかの行だけの分位数を計算したいので、あなたは新しい式ベースの列を持っていなければなりません。 あなたはすでにdataTmpでそれをやっているので、それは続けるための良い方法です。ただし、実行していることはすべてdataCorrで使用する条件付きなので、flyerTmpは必要ありません。その条件を直接dataCorrに入れることができます。
私は100,100行の添付データテーブルでこれを行いました。かなり速いです。
私はあなたがなぜ中間のコラムを取り除くのを心配していたのか興味がありますか?知的好奇心やその他の懸念?
再:どのように数式の列を変数に変更するのですか?このようなことを試してください。 このアイデアは、データと論理値であるブール値のベクトルを要素ごとに乗算することです。 これはかなり速いはずですが、私は計算上最も効率的になるものについては専門家からは程遠いと認めます。
dt = Current Data Table();
//Get values for other columns
raw = dt:DataRaw << Get Values;
P1vals = dt:P1 << Get Values;
P2vals = dt:P2 << Get Values;
//Compute equivalent of DataTmp
temp = (P1vals == 0 & P2vals < 3):*raw;
//Compute 98th percentile of temp
x98 = quantile(0.98, temp);
//Compute final column
final = (temp <= x98):*temp;
dt << New Column("DataCorr", << Set Values(final));結果は、欠落の代わりに0になります。 これらの値を欠損値に置き換えることができます(テーブルに元のDataCorrが残っている場合、前のスクリプトでは列 "DataCorr 2"が生成され、このコード行は正しい列に機能しません)。
//Replace 0s with missing
dt:DataCorr[dt << Get Rows Where(:DataCorr == 0)] = .;
再:どのように数式の列を変数に変更するのですか?こんにちはキャメロン 、
ファイルexample.jmpを添付しました。列:P1、:P2、:DataRawを使用して列:DataCorrを取得するには、列:DataTmpおよび:FlyerTmpの作成を回避するための最良の方法は何ですか?
これは、100,000行を超えるデータセットに適用できます。
トーマス
再:どのように数式の列を変数に変更するのですか?詳細をいくつか確認するだけです。
1。最初の列のすべての行で同じ値ですか?
2。あなたはコラムの追加をスクリプトで書いていますか?
- 最初の結果を行列の1つの列としてメモリ内で計算してから、それらの値が必要な場合は、それらを行列から取得してそれらの値で新しい列を作成することも可能です。多くの場合、これは列を追加してテーブル内で更新するまで待つことよりも高速です(本当に背の高いテーブルの場合)。
- しかし、さらに、(テーブルではなく)メモリで両方の計算を行い、結果をテーブルにポストバックします。
- すべての値が1桁目で同じである場合は、スクリプトでこれを計算し、テーブルとしてデータテーブルに追加します。
2列目の変数を参照します。
良い選択肢はたくさんありますが、それらはすべてあなたがやろうとしていることによります。
再:どのように数式の列を変数に変更するのですか?もっと正確な助けが欲しいなら、あなたは実用的な例を投稿しなければならないでしょう。
再:どのように数式の列を変数に変更するのですか?解決策をありがとう。できます。ただし、式の中で状態が使用されている場合は、計算が遅くなる可能性があります。
再:どのように数式の列を変数に変更するのですか?最初の列から式をコピーして、最初の列が参照されている場所の2番目の列の式に貼り付けることはできますか。