式を使用してダブルデータのインジケーター列を作成する方法次のJSLコードを適用して、ダブルデータ用の式インジケーター列を作成したいと思います。
dt << Clear Column Selection();
dt << Select Duplicate Rows();
dt << Name Selection in Column( Selected( 1 ), Unselected( 0 ) );
dt << Clear Select();
正しい結果が得られたにもかかわらず、コードは多くのエラーメッセージを作成します。コードを改善できれば素晴らしいでしょう。
再:式を使用してダブルデータのインジケータ列を作成する方法私が以下で使用した方法よりもあなたの質問をよりよく解決できるコミュニティメンバーがいることを願っています。 あなたが望むものを考えれば、データテーブルの選択機能を使用しようとすることに矛盾する問題があります、しかしあなたは選択をクリアしたいです。 それは式の再計算を余儀なくさせるでしょう。 それで私がしたことは、式にデータテーブルのサブセットを作成させ、サブセット化されたデータテーブルであなたの計算を実行させ(選択を分離し)そしてそれからサブセットから元のデータテーブルに結果を読むことです。サブセット化されたデータテーブルを削除します。 私のしていることを理解しているかどうか見てみましょう。 うまくいくようです。
If( Row() == 1,
dt = Current Data Table();
dt << Select Columns( :Column 1, :Column 2 );
dt2 = dt << subset(
private,
dt,
selected rows( 0 ),
selected columns( 1 )
);
dt2 << Select Duplicate Rows();
dt2 << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 )
);
);
x = dt2:MultipleData[Row()];
If( Row() == N Rows( dt ),
dt << clear column selection;
Close( dt2, nosave );
);
x;
再:式を使用してダブルデータのインジケータ列を作成する方法こんにちはジム、
ご協力ありがとうございました。トピックを単純化しようとしました。私の目標は、複数のデータを扱う列を作成することです。私は以下のJSLでこれを行うことができました:
Names Default To Here( 1 );
dt = Current Data Table();
dt << Select Columns( :Column 1, :Column 2);
dt << Select Duplicate Rows();
dt << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 ));
dt << Clear Select();
添付ファイルの1桁目と2桁目からの複数のデータ用。これはうまくいきます。 ただし、作業ファイルはSQLを介して新しいデータで頻繁に更新されるため、式列 "MultipleData"を作成することをお勧めします。
あなたの最後のコードが適用されている場合、残念ながら私はゼロしか得られません。解決策は何でしょうか。
再:式を使用してダブルデータのインジケータ列を作成する方法わかりました......私の以前のコメントは、コードが式としてではなく、オープンコードで実行されているという仮定に基づいていました。 これを式として使用すると、いくつかの懸念があります。
- 参照する場合は、データテーブルへのポインタdtを計算式で定義する必要があります。
- 実行時にすべての行を自動的に移動する関数を使用しています。 式はデータテーブル内のすべての行にまたがってループし、各行に対して1回ずつ式を実行します。 したがって、実際にコードを使用することは、実際には「Select Duplicate Rows」を何度も実行していることを意味します。
- 式の最初の行の赤い線は、実際には警告であり、エラーではありません。
式としてこれを使用するならば、以下は私が使用するあなたのコードのバージョンです。
If( Row() == 1,
dt = Current Data Table();
dt << Clear Column Selection();
dt << Select Duplicate Rows();
dt << Name Selection in Column( Selected( 1 ), Unselected( 0 ) );
dt << Clear Select();
);
なぜあなたがこれを式の列に入れたいのかはっきりしません。なぜならあなたがそれを置く列は全ての欠けている値を含んでいるからです。
再:式を使用してダブルデータのインジケータ列を作成する方法最初
数式エディタ内では、最初のコード行が赤い線でマークされています。
第二
式が適用されている場合は、ポップアップウィンドウが表示され、「Send Expected Scriptable Objects ...; Send、dt << / * ### * /」または「Selection()/ * ### *」のようなメッセージが表示されます。/ "
再:式を使用してダブルデータのインジケータ列を作成する方法あなたのコードはよさそうです......どんなエラーが起きていますか?
再:式を使用してダブルデータのインジケータ列を作成する方法こんにちはジム、
解決策をありがとう。私はあなたのコードを大きなデータベース上の数式列を使ってテストしました(約100k行100列) それはうまくいった。
私の解決策は次のJSLコードです。
Names Default To Here( 1 );
dt = Current Data Table();
//Delete preveious version of the indicator column
dt << Delete Columns("MultipleData");
wait(2);
//Create the new version of the indicator column
dt << Select Columns( :Column 1, :Column 2);
dt << Select Duplicate Rows();
dt << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 ));
dt << Clear Select();
dt << Clear Column Selection();前述したように、あなたのコードのように、公式の解法が好ましいです。データセットが更新された場合にはもっと便利です。