こんにちは、
2 つの非常に厄介な問題があります。
1 ) 以下の単純な for ループの場合、単一の出力に対して満たされる 3 つの条件があります。 手動で見てグラフを作成することで、8 つの組み合わせすべてが実際にデータに存在することを確認しました。ただし、これは偏った結果になり、x1、x2、および x3 のみが X1 列のすべてのセルに入力されます。 たとえば、エントリ x2 には、2 倍の数のエントリが割り当てられます。 サブセットを介してさらに検査すると、A1、B1、および C1 列は実際に x2 と x4 の両方で満たされ、これらは均等に共有されます。 すべての列は同じデータとモデリング タイプを共有します。
また、何が起こるかを確認するために、2 倍のエントリを集めているエントリをブロックしました。 次に、エントリはたとえば x2 にバンドルされます。
For( i = 1, i <= N Rows ( dt ), i++,
If( :A1[i] == "a1" & :B1[i] == "b1" & :C1[i] == "c1", :X1[i] = "x1";
:A1[i] == "a1" & :B1[i] == "b1" & :C1[i] == "c2", :X1[i] = "x2";
:A1[i] == "a1" & :B1[i] == "b2" & :C1[i] == "c1", :X1[i] = "x3";
:A1[i] == "a1" & :B1[i] == "b2" & :C1[i] == "c2", :X1[i] = "x4";
:A1[i] == "a2" & :B1[i] == "b1" & :C1[i] == "c1", :X1[i] = "x3";
:A1[i] == "a2" & :B1[i] == "b1" & :C1[i] == "c2", :X1[i] = "x4";
:A1[i] == "a2" & :B1[i] == "b2" & :C1[i] == "c1", :X1[i] = "x1";
:A1[i] == "a2" & :B1[i] == "b2" & :C1[i] == "c2", :X1[i] = "x2";
);
);
2) & を使用してセルに値を代入してコードを短くすると、「L 値ではないオブジェクトに代入しようとしています」というエラーが表示されます。 これは私のコードを短くし、複数の異なるループを持たないようにする試みです。以下は、3 つの基準と 3 つの出力の例です。
For( i = 1, i <= N Rows ( dt ), i++,
If( :A1[i] == "a1" & :B1[i] == "b1" & :C1[i] == "c1", :X1[i] = "x1" & :Y1[i] = "y1" & :Z1[i] = "z2";
:A1[i] == "a1" & :B1[i] == "b1" & :C1[i] == "c2", :X1[i] = "x2" & :Y1[i] = "y3" & :Z1[i] = "z3";
:A1[i] == "a1" & :B1[i] == "b2" & :C1[i] == "c1", :X1[i] = "x3" & :Y1[i] = "y2" & :Z1[i] = "z1";
:A1[i] == "a1" & :B1[i] == "b2" & :C1[i] == "c2", :X1[i] = "x4" & :Y1[i] = "y4" & :Z1[i] = "z4";
:A1[i] == "a2" & :B1[i] == "b1" & :C1[i] == "c1", :X1[i] = "x3" & :Y1[i] = "y1" & :Z1[i] = "z1";
:A1[i] == "a2" & :B1[i] == "b1" & :C1[i] == "c2", :X1[i] = "x4" & :Y1[i] = "y2" & :Z1[i] = "z4";
:A1[i] == "a2" & :B1[i] == "b2" & :C1[i] == "c1", :X1[i] = "x1" & :Y1[i] = "y4" & :Z1[i] = "z2";
:A1[i] == "a2" & :B1[i] == "b2" & :C1[i] == "c2", :X1[i] = "x2" & :Y1[i] = "y3" & :Z1[i] = "z3";
);
);
任意のガイダンスをいただければ幸いです。 アドバンスでお世話になりました!