Wie kann ich eine Spalte in eine Zeitspalte umwandeln, wenn sie ein ungewöhnliches Format hat?Hallo zusammen,
Ich habe eine Spalte mit Zeitangaben im Format 01h17m03s. Ich möchte diese Daten in einen kontinuierlichen Datensatz umwandeln, aber bisher hat nichts funktioniert. Kann ich dafür ein Skript verwenden?
Jede Idee wäre eine enorme Hilfe.
Danke,
-Ryan
Automatisierung und SkripterstellungVersuchsplanungMassenanpassungRe: So ändern Sie eine Spalte in eine Zeit, wenn sie ein seltsames Format hatSie könnten eine Formel verwenden, bei der :txt Ihre Spalte mit der Zeit ist:
InHours(Num(Word(1, :Txt, "hms"))) + InMinutes(Num(Word(2, :Txt, "hms"))) + Num(Word(3, :Txt, "hms"))
Ändern Sie dann die Spalte in Numeric Continuous und formatieren Sie sie als Time h:m:s (kann je nach Zeitformat unterschiedlich sein)

Re: So ändern Sie eine Spalte in eine Zeit, wenn sie ein seltsames Format hatNames Default to Here( 1 );
// make data like 01h17m03s
dt = New Table( "Time",
Add Rows( 10 ),
New Column( "Original", Character, Ordinal ),
New Column( "Converted", Numeric, Continuous, Format( "H:M:S" ) )
);
// utility
padded = Function( { l, h }, { v },
v = Random Integer( l, h );
v = If( v < 10, "0", "" ) || Char( v );
);
// populate original value
For Each Row(
h = padded( 0, 24 );
m = padded( 0, 60 );
s = padded( 0, 60 );
:Original = Concat( h, "h", m, "m", s, "s" );
);
// now convert it to JMP time number
For Each Row(
:Converted = Eval(
Parse(
Regex( :Original,
"(\d\d)h(\d\d)m(\d\d)s",
"\3 + 60*(\2) + 3600*(\1)"
)
)
)
);