JSL: Werte in einer Reihe von Zeilen basierend auf übereinstimmenden Zeichenfolgen in einer zweiten Spalte ändern?Unsere Datenerfassungssoftware startet etwas früher als unsere Experimente, daher möchten wir diese Verzögerungszeit in den JMP-Daten auf folgende Weise eliminieren:
1. Der Benutzer gibt Datum und Uhrzeit des Beginns jedes Experiments ein (kann Vielfache sein, die zu unterschiedlichen Zeiten in derselben Datentabelle beginnen). Diesen Teil habe ich mit einem Listenfeld geschrieben.
2. Analysieren Sie Datum und Uhrzeit.
3. Finden Sie den Zeilenbereich, der mit jedem spezifischen Experiment korreliert ist, basierend auf dem Abgleich der Zeichenfolgekennung in Spalte A
4. Entfernen Sie alle Zeilen vor Startdatum/Uhrzeit.
5. Ändern Sie die verstrichene Experimentzeit (in Dezimalzeit) so, dass sie bei der Eingabe von Datum und Uhrzeit beginnt.
Ich war bei allem bis #5 erfolgreich, wo ich immer wieder Fehlermeldungen bekomme. Idealerweise würde ich einfach die Zahl in der jetzt ersten Zeile des Bereichs für jedes Experiment von jeder Zelle in der Spalte für die verstrichene Zeit subtrahieren. Wäre hier eine Schleife am sinnvollsten? Soll ich einfach eine neue Spalte für die verstrichene Zeit jedes Experiments erstellen und dann neu kombinieren? Danke für jede Hilfe und Skripte.
SkripterstellungBetreff: JSL: Ändern Sie Werte in einer Reihe von Zeilen basierend auf übereinstimmenden Zeichenfolgen in einer zweiten Spalte?Danke, das war sehr hilfreich, ich habe es geschafft, dies in meinem Skript zum Laufen zu bringen, bin aber auf eine andere Straßensperre gestoßen. Die Datenpunkte stimmen nicht perfekt mit meiner Startzeit überein, sodass mein erster Zeitpunkt bis zu einer Minute daneben liegt. Ich würde diesen ersten Zeitpunkt gerne auf 0 ziehen, anstatt auf ~ 0,01, das es jetzt ist. Ich erhalte jedoch keine Werte in meiner angepassten Zeitspalte. Das Folgende ist mein Code, in dem der Zeitstart angegeben ist.
t1 = dt << Get Rows Where (:BatchID == "ABCD");
t2 = dt << Get Rows Where (:BatchID == "EFGH");
dt << New Column("TimeStart", Number);
:TimeStart[t1] = timestart1;
:TimeStart[t2] = timestart2;
dt << New Column("NewEFT", Number, Formula((:Datetime-:TimeStart)/3600));
dt << Select Where(:NewEFT< 0);
dt << delete rows;
dt << Delete Columns("EFT_hrs");
dt << New Column("Adjusted EFT", Number);
:Adjusted EFT[t1] = :NewEFT - min(:NewEFT[t1]);
:Adjusted EFT[t2] = :NewEFT - min(:NewEFT[t2]);Betreff: JSL: Ändern Sie Werte in einer Reihe von Zeilen basierend auf übereinstimmenden Zeichenfolgen in einer zweiten Spalte?Vielleicht finden Sie etwas Interessantes dieser Faden , obwohl die Details vom spezifischen Format Ihrer Daten abhängen.