Ich muss Zeitintervalle im Format% H konvertieren:% M:% S (Klasse = Faktor) zu Klasse = Difftzeit. Ich bin derzeit as.difftime(), dies zu tun, aber es gibt NA, wenn die Stunde Wert> 23.R as.difftime() Problem für Zeiten länger als 1 Tag
TimeElapsed_raw = as.factor(c("03:59:59", "21:00:00", "01:03:46", "44:00:00", "24:59:59"))
TimeElapsed = as.difftime(as.character(TimeElapsed_raw), format = "%H:%M:%S")
TimeElapsed
Time differences in hours
[1] 3.999722 21.000000 1.062778 NA NA
ich das gleiche Problem haben, ob ich das Format Anweisung in as.difftime enthalten ():
as.difftime("65:01:17")
Time difference of NA secs
aber das funktioniert:
as.difftime(65.1, units = "hours")
Time difference of 65.1 hours
ich auch die lubridate as.duration() -Funktion versucht verwendet haben, aber die Werte berechnet es unsinnig erscheinen.
as.duration(TimeElapsed_raw)
[1] "2s" "3s" "1s" "5s" "4s"
Jede Hilfe wäre willkommen!
Das funktioniert nur mit einem numerischen. Weil ich meine Daten von einem csv mit ':' darin lese, kann ich es nur als Faktor oder Charakter formatieren. Der Versuch, as.numeric() für die Werte zu verwenden, gibt mir nur NAs. – pradlee