2016-06-20 3 views
3

Ich habe eine Variable in Form von Minuten in einer Aktivität verbracht. Ich möchte diese Zahl in Stunden und Minuten umrechnen, indem ich die Ziffern berücksichtige, aber keine Sekunden erzeuge. Hier ein Beispiel:Wie kann ich numerische in Stunden und Minuten in R konvertieren?

minutes<-c(81.4398, 50.9903,107.5511,433.3051,10.1234) 
minutes 

ich das Ergebnis in einem Uhrformat möchte:

hrsmins<- c(1:21,0:51,1:48,7:13,0:10) 

Beachten Sie, dass das Ergebnis, tut nicht zeigen die Uhrzeit des Tages aber Stunden und Minuten in der Aktivität. Ich habe einen sehr großen Datensatz (Millionen von Episoden). Daher würde ich mich freuen, wenn jemand eine effiziente Möglichkeit bietet, diese Konvertierung durchzuführen.

Antwort

2

Wir können mit versuchen chron

library(chron) 
substr(times((minutes%/%60 + minutes%%60 /60)/24), 1, 5) 
#[1] "01:21" "00:50" "01:47" "07:13" "00:10" 

Oder es könnte viel

sub(":\\d{2}", "", times((minutes%/%60 + minutes%%60 /3600)/24)) 
#[1] "01:21" "00:51" "01:48" "07:13" "00:10" 
+1

Dank sein. Letzteres ist genau das, was ich brauche, da es genauer ist als das erste (zB 107.5511 min = 1:48 statt 1.47) – Eva

+3

Wenn ich etwas nicht vermisse, sollte nicht 'sprintf ('% .02d:% .02d ", Minuten% /% 60, rund (Minuten %% 60))' genügen? –

Verwandte Themen