Fehler im Abhängigkeitszyklus der SpaltenformelHallo zusammen,
Ich frage mich nur, wie wir das schaffen können Zirkelverweise in JSL. Ich habe zum Beispiel eine Bevölkerungsmenge und eine Ausfallrate. Die Ausfallrate für jedes Jahr hängt jedoch vom Überleben ab Teile.
Jahr Erstausrüstung fehlgeschlagen Überleben
1 100 1 99
2 99 2 97
3 97 3 94
Ich weiß, dass JMP nicht zulässt, dass eine Spalte eine Formel hat, die von der anderen formulierten Spalte abhängt. Gibt es einen Trick, den man in diesem Fall umgehen kann?
Danke
Danke
Automatisierung und SkripterstellungBetreff: Fehler im Abhängigkeitszyklus der SpaltenformelSie können in JMP Formelspalten haben, die andere Formelspalten verwenden.

Wie würden Sie in Ihrem Fall neue Daten eingeben? Welche Spalten sollen berechnet werden und auf welcher(n) Spalte(n) basieren?
Betreff: Fehler im Abhängigkeitszyklus der SpaltenformelDanke für Ihren Vorschlag. So würde ich es einrichten, aber es iteriert nur für 2 Zeilen und würde nur für diese Zeile zu lange dauern.
New Table( "test",
Add Rows( 7 ),
New Column ("Year", Set Values ([1,2,3,4,5,6,7])),
New Column ("Failure Rate", Set Values ([0.1,0.1,0.15,0.2,0.25,0.3,0.35])),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", formula (:Failure Rate *:original) ),
New Column( "Survive", formula (:original - :failed ))
);
Wait( 2 );
For Each Row(
If( Row() != 1,
:original = Lag( :Survive )
)
);
Betreff: Fehler im Abhängigkeitszyklus der SpaltenformelBerechnen Sie die neue Originalspalte und verwenden Sie diese für Ihre Berechnungen
Names Default To Here(1);
dt = New Table("test",
Add Rows(7),
New Column("Year", Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Failure Rate", Set Values([0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35])),
New Column("original", Set Values([100, ., ., ., ., ., .])),
New Column("failed", formula(:Failure Rate * :original)),
New Column("Survive", formula(:original - :failed))
);
dt << New Column("OriginalF", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:OriginalF) - Lag(:OriginalF) * Lag(:Failure Rate)
);
));
dt << New Column("FailedF", Numeric, Continuous, Formula(
:OriginalF * :Failure Rate;
));
dt << New Column("SurviveF", Numeric, Continuous, Formula(
:OriginalF - :FailedF
));

Betreff: Fehler im Abhängigkeitszyklus der Spaltenformel jthi.Das ist eine sehr clevere Möglichkeit, den Referenzzyklus zu durchbrechen.
Betreff: Fehler im Abhängigkeitszyklus der Spaltenformel@jthi schrieb:
Berechnen Sie die neue Originalspalte und verwenden Sie diese für Ihre Berechnungen
und dann: zurück zu den alten Spaltennamen wechseln.
Der Trick ist also: Verwenden Sie nicht die „Fehler“, um die Originalwerte zu berechnen 
Names Default To Here(1);
New Table( "test",
Add Rows( 7 ),
New Table Variable( "original", 100 ),
New Column( "Year", Numeric, "Continuous", Format( "Best", 10 ), Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
)
);
New Column("Original", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:Original) - Lag(:Original) * Lag(:Failure Rate)
);
));
New Column("Failed", Numeric, Continuous, Formula(
:Original * :Failure Rate;
));
New Column("Survive", Numeric, Continuous, Formula(
:Original - :Failed
));
Betreff: Fehler im Abhängigkeitszyklus der Spaltenformellustig, wie ein altes Auto 
Gut, dass es nach dem 2. Versuch startet.
das Gleiche auf Ihrer Seite?
New Table( "test",
Add Rows( 7 ),
New Column( "Year", Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed" ),
New Column( "survive" )
);
start = Function( {},
:survive << set formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:failed = :Failure Rate * :original;
:original - :failed;
)
);
start();
start();
Betreff: Fehler im Abhängigkeitszyklus der SpaltenformelMit der ursprünglichen Menge und den Fehlerwerten können Sie alle Werte eingeben. (*)
Sie könnten also ein Skript einrichten, das jedes Mal ausgelöst wird, wenn ein Wert eingegeben wird.
Sie müssen einmal auf **) klicken

... dann wird alles gut:
Wenn Zeilen hinzugefügt oder ein Eingabewert (*) geändert werden, wird die Tabelle aktualisiert – alle anderen Änderungen werden ignoriert.
New Table( "test",
Add Rows( 7 ),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", Set Values( [1, 2, 3, 5, 32, 2, 6] ) ),
New Column( "Survive" )
);
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
Wait( 0 );
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
bearbeiten:
Hm, ich kenne den Unterschied zum letzten Mal nicht, aber jetzt funktioniert das Auto-Update überhaupt nicht
--> also einfach zweimal auslösen 
[Ich hoffe, dass ich morgen keine 3 Versuche brauche ...]
bearbeiten:
unnötig Für jede Reihe ENTFERNT.
**)
- Irgendeine Idee, wie man diese Nachricht loswird? ->
- Irgendeine Idee, warum das letzte: überleben Eintrag fehlt [zumindest ist das heute besser: fehlt nicht mehr :]
- Irgendeine Idee, warum ich heute den Formelbefehl 2x brauche ???