[列の選択] を使用して for ループ内のテーブルにデータ値を追加する方法 ターゲット データの新しい全体データ テーブルを作成する場所For( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" ));<BR />);
for ループの各繰り返しを通じて、列基準 (:Timepoint == LBCM) で指定されたデータを段階的に追加し、ループの終了時にそれを結合データ テーブルに結合して結果を表示したいと考えています。 。
今のところ、どこにも何も追加されていません。結局、新しいデータテーブルはまったく作成されません。
サンプル ID に基づいて、これらすべてを別の for ループ内に配置していますが、ここにそれを追加しても、現時点では物事が過度に複雑になるだけだと思います。
JMP コミュニティ フォーラムで私が見つけた他の例はすべて、データの配列を構築してデータ テーブルなどに転送する非常に複雑、またはそのように見えるものです。 ここでの解決策ができるだけ簡単であることを望みます。 もちろん、返信が来たら会話に貢献しますが、今のところ完全に行き詰まっています。
ご協力ありがとうございました、
マイク
高度な統計モデリングコンテンツの構成実験計画法マスカスタマイゼーション結果の共有と伝達あRe: 列選択を使用して for ループでテーブルにデータ値を追加する方法 対象データの全体データ テーブルを新規作成する場所列部分を選択することで効率が向上するのはわずかかもしれませんが、ほとんどの場合はコードが読みやすくなるだけです (私の意見では)。
ループ内にデバッグ出力を追加して、サブセット化するものがあるかどうかを確認してみましたか?
For(i = 1, i <= N Items(IDs), i++,
ID = IDs[i];
date_array = Associative Array({"date1", "date2", "date"}, {{}, {}, {}});
For(date = date_array << First, !Is Empty(date), date = date_array << Next(date),
dt << Select Where(:Timepoint == date);
Show(N Items(dt << Get Selected Rows));
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
);
);追加したShow(N Items(dt << 選択された行を取得));これにより、行が選択されているかどうかがわかります。 また、同様の名前の列がある場合、ID を変数名として使用するのは快適ではありません(うまくいくかどうかはわかりませんが、念のためそのような名前は避けます)。 currentID などに置き換えます。
現時点では、この問題を部分的に解決するために役立つ 1 つのトピックがあれば、おそらく簡単になるのではないかと思います。非常に役立つことの 1 つは、サンプル データセットがあることです。 データセットは大きい必要はなく、匿名化されたデータや完全に偽のデータでも構いませんが、それでも現実的である必要があります (列のデータ型が同じで、さまざまなケースをテストできる可能性があります)。
Re: 列選択を使用して for ループ内のテーブルにデータ値を追加する方法 ターゲット データの全体データ テーブルを新規作成する場所ありがとう、ジャーモ。 では、コードの主な目的は効率性の向上ですか、それとも真の機能性の向上ですか?
私にとっては完全には機能しませんが、これらすべてが別の for ループ (または 2 つ) にあると言わざるを得ません。
For( i = 1, i <= N Items( IDs ), i++,
ID = IDs[i];
date_array = Associative Array( {"date1", "date2", "date"}, {{}, {}, {}} );
For( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Where(:Timepoint == date);
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
//...
););コンピュータは実行時にかなり考えているようですが、画面には何も表示されません。 このコードはすべて匿名化されているため、スペルミスや転記ミスの可能性があり、以前のバージョンで書かれたものと混同される可能性があることに注意してください。 おおよその類似性が得られると想定するのが安全だと思います...
これら 2 行がループの内側にあるべきなのか、ループの一方の外側にあるべきなのか、それとも現時点では両方のループが必要なのかがわかりません。 もう一度脚本を徹底的に見直す必要があります。
また、このコードに関するいくつかのトピックについては、別の投稿で説明します。 それが許容できるエチケットなのか、それともコードのチャンクを 1 つの投稿に優先順位を付けて 1 つの投稿で別のトピックについて議論することが望ましいのか、あるいはどちらの方法でも問題ないのか、上級者に教えていただけますか?
ムーチョス・グラシアス
マイケル
Re: 列選択を使用して for ループ内のテーブルにデータ値を追加する方法 ターゲット データの全体データ テーブルを新規作成する場所ここで何をしたいのか100%わからないので、少し推測します
これら 2 つの行には、いくつかの問題がある可能性があるようです。
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" )););
サブセット コマンド内で必要な列を組み合わせることができ、行の選択は << Select Where で行うことができます (Select が欠けているようです)。
dt << Select Where(:Timepoint == date);
dt << Subset(Columns({"Timepoint", "TargetChannel"}), Selected Rows, Output table name("Subset"));また、サブセット化する列を最初に選択したい場合は、「サブセット」コマンド内に「選択された列」を追加する必要があります。
dt << Subset(Output table name("Subset"), Selected Rows, Selected Columns);Re: 列選択を使用して for ループ内のテーブルにデータ値を追加する方法 ターゲット データの全体データ テーブルを新規作成する場所を見てみましょう
dt << add rows(n);
必要に応じて新しい行を追加します