Erkannte Zyklen sind ein großes Problem für meine Arbeit.Hallo JMP-Community
„Zyklen erkannt“ ist ein großes Problem (das häufig auftritt), da Geschäftsregeln simuliert werden, die NICHT zeilenweise zyklisch sind. JMP ist jedoch nicht in der Lage, eine sehr einfache zeilenweise Abhängigkeit zu verarbeiten, die Excel kann. Ehrlich gesagt gefällt es mir nicht, wenn ich höre, dass JMP keine Tabellenkalkulation ist, weil ich denke, dass ein erheblicher Teil der Benutzer wahrscheinlich mit einem solchen Problem konfrontiert war. Ich kämpfe ständig mit diesem Problem, da Daten nach Datensätzen (z. B. Datum/Uhrzeit) klassifiziert werden und daher früheren Datensätzen unterliegen. Warum sollte JMP eine Verzögerungsfunktion bereitstellen, wenn sie die Handhabung zeilenweiser Operationen nicht einfacher machen wollten (und das ist großartig, ich verwende sie ständig). Dadurch wird jedoch das erkannte Zyklenproblem gelöst, und auch hier gibt es in Bezug auf die Tabellenkalkulation keine Konflikte. Excel kann damit problemlos umgehen, JMP nicht. Ich besitze eine Pro-Lizenz und ein solches Feedback an mein oberes Management würde ehrlich gesagt nicht gut aussehen. Für mich liegt der Hauptvorteil von JMP Pro in der benutzerfreundlichen Möglichkeit komplexer Modellierung, Datenwissenschaft und maschinellem Lernen auf Big Data. Das aktuell beschriebene Problem beeinträchtigt die Benutzerfreundlichkeit des Tools. Wenn ich nichts anderes tun kann, muss ich aus JMP exportieren, damit ich dies mit Excel tun kann (was mühsam ist).
Meine Absichten aus diesem Beitrag:
1- Kann ich irgendetwas tun, um die Entwickler darauf aufmerksam zu machen?
Z.B Ich habe „Fehler ignorieren“ und „Alle Zyklen ignorieren“ unabhängig voneinander ausprobiert. Ich hatte erwartet, dass diese möglicherweise die erforderlichen Prüfungen umgangen haben und die Formeln möglicherweise durchlaufen lassen konnten (was jedoch nicht der Fall war).
2- Gibt es einen formelbasierten Ansatz (selbst wenn es sich um ein Skript handelt, muss dies in einer Formel erfolgen), der verwendet werden kann? Ich füge unten zwei Beispiele bei – dieselben Berechnungen, eines in JMP und das andere in XLS.
A ist eine freie Eingabespalte.
B wird für record = 1 auf A initialisiert und ist dann entweder A oder der vorherige Wert von B (d. h. sich selbst unter Verwendung der Verzögerungsfunktion), abhängig von C
C ist A – vorheriger Wert von B
Danke.
Qualitäts- und VerfahrenstechnikBetreff: Erkannte Zyklen stellen ein großes Problem für meine Arbeit dar.Meine tatsächlichen Parameter waren komplizierter als hier in diesem einfachen Beispiel gezeigt. Julians Lösung ist gleichermaßen akzeptabel, aber ich denke, der Versuch, die gesamte Komplexität in eine einzige Formel zu packen, wäre zu viel, deshalb habe ich mich für das Skript von Craige entschieden (das hat funktioniert).
Ich werde versuchen, den JMP-Entwicklern eine Nachricht zu senden, damit (1) sie vielleicht die Punkte „Fehler ignorieren“ und „Alle Zyklen ignorieren“ klären können – was für mich wiederum so klingt, als ob man ein durch Zyklen erkanntes Problem umgehen kann, aber sie sind eindeutig nicht. (2) und vielleicht können sie erwägen, JMP eine Option zur Umgehung zu geben, wenn kein echter Zyklus vorhanden ist.
Betreff: Erkannte Zyklen stellen ein großes Problem für meine Arbeit dar.Dieses Skript liefert die gleiche Antwort wie die Excel-Tabelle und ähnelt stark Ihren Spaltenformeln.
dt = Open( "/Z:/cyclic_error_sample.jmp" );;
dt:b<<DELETEFORMULA> 1,
dt:a - lag(dt:b);//
,//
.
);
dt:b = If( dt:record == 1,
dt:a;//
, //
If( dt:c < 1.5,
dt:a;//
, //
lag(dt:b)
)
);
);</DELETEFORMULA>
Im Gegensatz zu JMP-Spaltenformeln, die Spalte für Spalte auswerten, stellt das Skript die Auswertung von C zeilenweise vor die Auswertung von B. Ich habe eine Minute lang auf Ihre Formeln gestarrt, um zu erkennen, dass C zuerst ausgewertet werden muss, da dies nur von der vorherigen Zeile von B abhängt. Dann kann B ausgewertet werden, da es vom C-Wert abhängt, den wir gerade für die aktuelle Zeile berechnet haben.
Studieren Sie es etwas genauer ... Kopieren Sie einfach die C-Formel in Spalte B anstelle von dt:C, so:
Removes the reference to column CRemoves the reference to column CEntfernt den Verweis auf Spalte C
Dadurch können Sie Spalte C löschen, wenn Sie sie nicht wirklich benötigen. Dies bedeutet auch, dass die Spalten automatisch aktualisiert werden, im Gegensatz zum ersten Skript, das Sie erneut ausführen müssten.
Betreff: Erkannte Zyklen stellen ein großes Problem für meine Arbeit dar.Hallo @altug_bayram ,
Das hört sich nach einem so frustrierenden Problem an, dem Sie bei Ihrer Arbeit ständig begegnen! Ich stimme zu, dass es so aussieht, als ob „Alle Zyklen ignorieren“ das tun sollte, was es sagt, und die Formeln weiterlaufen lassen sollten, weil Sie gegenüber JMP behaupten, dass tatsächlich keine Abhängigkeit besteht. Das hört sich nach einem Defekt an und der beste Weg, dies den Entwicklern mitzuteilen, ist eine E-Mail support@jmp.com Ich erkläre das Problem so, wie Sie es hier getan haben.
Um dieses Problem zu umgehen, besteht die Lösung darin, nicht einmal das zu erstellen Aussehen einer Abhängigkeit, indem Sie die gesamte Formel für Spalte C kopieren und Verweise auf C durch diese Formel in Spalte B ersetzen:

If( :Record == 1,
:A,
If( If( :Record > 1, :A - Lag( :B, 1 ), . ) < 1.5,
:A,
Lag( :B, 1 )
)
)
Sie können Ihre Formel für C so beibehalten, wie sie ist, und Ihre Tabelle wird problemlos gefüllt. Dies löst keine Alarme für einen Zyklus aus, da in einer einzelnen Formel für JMP klar ist, dass Verweise auf B in der Spaltenformel für B über Lag() erfolgen. Wenn sich die Formeln in verschiedenen Spalten befinden, scheint die Zykluserkennung Lag() nicht zu berücksichtigen und sieht nur, dass B auf C verweist und auf B verweist.

Ich hoffe, dass dies für Ihre Arbeit hilfreich ist, bis eine Lösung für „Alle Zyklen ignorieren“ gefunden werden kann!
@julianisch