2009-02-24 6 views
14

Je travaille avec un jeu de données d'enquête. Il a deux chaînes vectors, start et finish, indiquant l'heure du jour où l'entrevue a été commencée et terminée, respectivement. Ils sont character chaînes qui ressemblent à: "9:24 am", "12:35 pm", et ainsi de suite. J'essaie de calculer la durée de l'entrevue en fonction de ces deux. Quelle est la meilleure façon de faire cela?Quelle est la meilleure pratique pour gérer le temps en R?

Je sais que, pour les dates, il y a beaucoup de classe s ou function s comme as.date(), as.Date(), chron() ou as.POSIXct(). Donc, je cherchais quelque chose comme as.time(), mais je ne pouvais pas le trouver. Dois-je juste ajouter une date inventée et convertir le tout en POSIX() date-heure class, puis utiliser difftime()?

Quelle est la meilleure pratique de gestion du temps dans R?

Répondre

15

Vous devez utiliser strptime() pour convertir la chaîne à une date. Par exemple:

strptime("9:24 am",format="%I:%M %p") 

Vous pouvez alors prendre des différences juste en prenant un loin de l'autre:

strptime("9:24 am",format="%I:%M %p")-strptime("12:14 am",format="%I:%M %p") 
Time difference of 9.166667 hours 

Vous pouvez stocker ce puis faire une as.numeric() si vous voulez juste le numéro dehors, sinon vous peut passer autour des objets de temps.

Espérons que cela aide!

+0

mis à jour par lubridate –

1

Une option consiste à utiliser des expressions régulières. Si vous n'êtes pas familier avec eux, ils sont utilisés pour analyser les chaînes en utilisant des modèles. Je voudrais la recherche d'expressions régulières et here are the functions in r

espère que cela aide

Questions connexes