Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Hallo alle.
In JMP arbeite ich mit Stabilitätsdaten, die aus einem LIMS-System extrahiert wurden. Bei der Analyse hätte ich Zeit in Monaten auf der X-Achse. Die extrahierten Daten liegen in zwei Zeitformaten vor: Entweder als Zeit in Monaten (z. B. „M-12“ oder „M-36“) oder als Zeit in Tagen (z. B. „EOS-968“ oder „EOS-1011“) ). Alle Daten befinden sich in der gleichen Spalte.
Ich benötige die Daten weiterhin, um die erforderliche Analyse durchführen zu können. In Bezug auf die Zeit in Monaten entferne ich normalerweise einfach das „M-“, indem ich ein „Suchen und Ersetzen“ durchführe – und Ersetzen leer lasse. Es ist mehr Arbeit, die Tage in Monate umzuwandeln.
Mein eigener anfänglicher Gedanke war, zuerst den „EOS-“-Teil zu entfernen und dann in Monate neu zu berechnen, aber da sich die Daten alle in derselben Spalte befinden, finde ich es schwierig, die beiden „Datensätze“ auseinander zu halten, bis sie die haben gleiche Einheit.
Hätten Sie irgendwelche netten Ideen, wie ich diese Transformation einfacher machen kann? Vielleicht ist ein kleines Skript erforderlich?
Jede Hilfe wird sehr geschätzt.
Mit freundlichen Grüßen
Henriette
DatentabelleBetreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Hallo Dale.
Vielen Dank für Ihre Hilfe.
BR Henriette
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Hallo Jarmo.
Das hat perfekt funktioniert. Vielen Dank für Ihre Hilfe.
BR Henriette
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Ich sehe andere ähnliche Ideen, beigefügt ist meine (ohne Skripting).
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Sie müssen es nicht in einer Variablen speichern.
Beispiel unten. Führen Sie das Skript aus und überprüfen Sie die Formel für MonthNumber:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
Num(Word(2, :Time, "-"))
,
StartsWith(:Time, "EOS"),
Num(Word(2, :Time, "-"))/30
,
. //if starts with something else than "M" or "EOS"
);
));
Sie können die Formel dann nach Bedarf ändern.
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Hallo.
Vielen Dank für Ihre Hilfe. Ich bin völlig neu in der JMP-Skripterstellung, also können Sie mich vielleicht in die richtige Richtung weisen, um die fehlenden Logiken auszuführen.
Für "Monatslogik" möchte ich nur den Teil "M-" entfernen, also denke ich, dass die Word-Funktion von Dales Antwort den Zweck erfüllen sollte.
Für "Tageslogik" möchte ich den "EOS-" Teil entfernen (mit Word-Funktion) und dann den numerischen Teil von Tagen in Monate umrechnen. Vielleicht eine dumme Frage, aber kann ich einfach zwei Codierzeilen hinzufügen oder muss ich sie irgendwie in einer Variablen speichern?
Danke 
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Hallo Dale. Ich danke Ihnen für Ihre Hilfe. Soweit ich sehen kann, wird mir die Verwendung der Word-Funktion wie beschrieben eine Spalte mit kontinuierlichen Daten (yay) geben, aber in zwei verschiedenen Einheiten (Tagen und Monaten).
Irgendwelche Ideen, wie ich die Tage in Monate umrechnen kann, aber nur für die Zeilen, in denen der numerische Wert in Tagen ist?
BR Henriette
Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Zusätzlich zur Verwendung von Word() können Sie die Starts With- und If-Anweisung verwenden, um festzulegen, wie Sie den Monat berechnen sollen.
Das folgende Skript fügt die Platzhalterwerte 1 (Monat) und 2 (Tag) hinzu. Ersetzen Sie sie durch Ihre Logik für die Monatsberechnung
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Selected, Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
//month logic here
1
,
StartsWith(:Time, "EOS"),
//day logic here
2
,
. //if starts with something else than "M" or "EOS"
);
));

Betreff: Wie wandle ich eine Zeitdatenspalte (nominal) in kontinuierliche Daten in einer Einheit (Monate) um?Die "Wort"-Funktion scheint den Zweck zu erfüllen - siehe die angehängte Beispieldatei.