Hallo,
Ich habe 2 sehr verwirrende Probleme.
1) Für die einfache for-Schleife unten habe ich 3 Bedingungen, die für eine einzelne Ausgabe erfüllt sind. Ich habe überprüft, indem ich manuell nachgesehen und grafisch dargestellt habe, dass alle 8 Kombinationen tatsächlich in den Daten vorhanden sind.Dies kommt jedoch schief heraus, wo nur x1, x2 und x3 in alle Zellen in der X1-Spalte eingetragen werden. Dem Eintrag x2 wird beispielsweise die doppelte Anzahl von Einträgen zugewiesen. Bei weiterer Untersuchung über die Teilmenge werden die Spalten A1, B1 und C1 tatsächlich sowohl für x2 als auch für x4 erfüllt, was zu gleichen Anteilen wäre. Alle Spalten haben denselben Daten- und Modellierungstyp.
Ich habe auch den Eintrag blockiert, der doppelt so viele Einträge sammelt, nur um zu sehen, was passieren wird. Dann werden die Einträge beispielsweise zu x2 gebündelt.
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) Wenn ich den Code kürze, indem ich der Zelle mit & Werte zuweise, erhalte ich einen Fehler "Versuch, einem Objekt zuzuweisen, das kein L-Wert ist". Dies ist ein Versuch, meinen Code zu verkürzen und nicht mehrere verschiedene Schleifen zu haben.Unten ist ein Beispiel für 3 Kriterien und 3 Ausgänge.
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";
);
);
Jede Anleitung wäre willkommen. Vielen Dank für Ihre Hilfe im Voraus!