Finden Sie den Zeitunterschied zwischen den ZeilenHallo,
Ich arbeite an der Einrichtung eines Skripts. Einer der Schritte besteht darin, dass wir feststellen, ob der „Zeitstempel“ innerhalb von 30 Minuten der Zeile darüber oder darunter liegt, und zwar in sequenzieller Reihenfolge nach UCN. Natürlich muss dies Datum und Uhrzeit enthalten. Unten ist das Skript/die Formel, die ich verwende. Aber wenn ich es mache, werden nur die Zeiten betrachtet und weder UCN noch Datum berücksichtigt. Sie können in meiner Spalte „30 Minuten“ sehen, dass die Identifizierung nicht richtig ist.
Dies ist so eingerichtet, dass die UCNs diejenigen sind, die innerhalb von 5 Ziffern voneinander liegen. Aber dann muss ich feststellen, ob diese UCNs einen Zeitstempel haben, der innerhalb von 30 Minuten von denen liegt, die innerhalb der 5 Ziffern liegen. Hoffentlich ergibt das Sinn. Wenn Sie sich also die Zeilen 12 und 13 ansehen, heißt es, dass sie basierend auf dem Zeitstempel übereinstimmen, aber das sind sie nicht, weil sie unterschiedliche Centercodes haben und die UCNs nicht 5 Ziffern auseinander liegen. Die Zeilen 11 und 12 liegen für die UCN innerhalb von 5 Ziffern, aber die Zeit liegt mehr als 30 Minuten auseinander, daher sollte es in der Spalte „Zeit innerhalb von 30“ nicht als „1“/rot gekennzeichnet werden.
// New column: Time within 30
Data Table("Time within 30 minutes") << New Column("Time within 30",
Numeric,
"Continuous",
Format("Best", 12),
Formula(
If(
Dif(Num(:Unit Entry Timestamp), 1) <= 30 | Abs(Dif(Num(:Unit Entry Timestamp), -1))
<= 30,
1,
0
)
)
) << Move Selected Columns({:Time within 30}, after(:Positive or Negative));
// Change column info: Time within 30
Data Table("Time within 30 minutes"):Time within 30 <<
Set Property("Value Colors", {0 = 2, 1 = 3}) << Color Cell by Value(1);
Automatisierung und SkriptingDatenexploration und -visualisierungWindowsBetreff: Zeitunterschied zwischen Zeilen ermittelnErstellen Sie eine neue Spalte, in der Sie Datum und Uhrzeit kombinieren (Datum + Uhrzeit) und legen Sie dann Ihre Pos.-UCN als numerisch fest, wenn es sich um Zahlen handelt. Dann sollten Sie in der Lage sein, eine ähnliche Idee, die Sie für Ihren Zeitvergleich haben, für Pos.-UCN und für die neue Zeitstempelspalte zu verwenden.
Betreff: Zeitunterschied zwischen Zeilen ermittelnDenken Sie auch an die Vergleiche in Sekunden, da JMP so mit der Zeit umgeht. Sie können beispielsweise In Minutes(30) verwenden, um 30 Minuten in Sekunden umzurechnen (oder verwenden Sie einfach 30*6).
Betreff: Zeitunterschied zwischen Zeilen ermittelnSie müssen als Zeichenwerte erhalten bleiben, da ich die führenden Nullen benötige.
Betreff: Zeitunterschied zwischen Zeilen ermittelnOk, erstellen Sie in diesem Fall entweder eine neue numerische Spalte für sie oder verwenden Sie Num für die Konvertierung (natürlich können Ihre 5 Ziffern Unterschied etwas anderes bedeuten als die numerische Differenz zwischen ihnen).
Können Sie alle Regeln, die Sie haben, in der Reihenfolge ihrer Wichtigkeit angeben? Ich bin mir beispielsweise nicht sicher, wie die Center-Codes damit zusammenhängen (Sie haben sie erwähnt)?
- Sie möchten Zeilen finden, deren UNC-Werte sich um maximal 5 unterscheiden (ich nehme an, das bedeutet, dass sie 5 Ziffern voneinander abweichen).
- Dann möchten Sie Werte, die maximal 30 Minuten auseinander liegen, während Sie Regel 1 ausfüllen
- Codes für die Mitte?
- Irgendetwas anderes?
Betreff: Zeitunterschied zwischen Zeilen ermittelnDie Regeln, die Sie aufgestellt haben, sind ziemlich korrekt. Der Center-Code ist nur die Kennung für jedes Center. Der Center-Code sind die ersten 3 Ziffern der UCN, falls das hilft. Ich habe ihn bereits in meinem Skript und meiner Hauptdatei (die riesig ist), um von etwa 12.000 Zeilen auf diese 120 herunterzufiltern. Das macht die UCNs innerhalb von 5 Ziffern.
Der nächste Schritt besteht darin, zu ermitteln, ob die ähnlichen UCNs einen Zeitstempel haben, der innerhalb von 30 Minuten voneinander liegt (für dasselbe Zentrum und innerhalb von 5 Ziffern der UCN). Das ist es, was ich herauszufinden versuche. Die Formel, die ich derzeit verwende und die nicht funktioniert, sollte in der Spaltenformeloption in der Tabelle aufgeführt sein, die ich zuvor hochgeladen habe.
Betreff: Zeitunterschied zwischen Zeilen ermittelnIch bin nicht sicher, ob diese Formel richtig ist, da sie ganz anders ist als Ihre Formel.
Current Data Table() << New Column("R", Numeric, Nominal, Formula(
If(:Center Code == Lag(:Center Code) | :Center Code == Lag(:Center Code , -1),
If(Min(Abs(Dif(Num(:Pos UCN))), Abs(Dif(Num(:Pos UCN), -1))) <= 5,
Min(Abs(Dif(:Unit Entry Timestamp)), Abs(Dif(:Unit Entry Timestamp, -1))) <= In Minutes(30)
,
0
)
,
0
);
));

Betreff: Zeitunterschied zwischen Zeilen ermittelnDies ist die Formel, die ich brauche, um meine Spalte innerhalb von 5 zu erhalten
If( Dif( Num( :Pos UCN ), 1 ) <= 5 | Abs( Dif( Num( :Pos UCN ), -1 ) ) <= 5,
1,
0
)
Betreff: Zeitunterschied zwischen Zeilen ermittelnMir ist gerade aufgefallen, dass ich diese Spalte in meiner ursprünglichen Frage nicht aufgenommen hatte.
Betreff: Zeitunterschied zwischen Zeilen ermittelnDiese Formel war GENAU das, was ich brauchte!!!!! Danke!!!