2009-02-24 11 views
14

Estoy trabajando con un conjunto de datos de encuestas. Tiene dos cadenas vectors, start y finish, que indican la hora del día en que se inició y finalizó la entrevista, respectivamente.¿cuál es la mejor práctica de manejar el tiempo en R?

Son character cadenas que se parecen a: "9:24 am", "12:35 pm", y así sucesivamente. Estoy tratando de calcular la duración de la entrevista basada en estos dos. Cual es la mejor manera de hacer esto?

sé que, por fechas, hay un montón de classe s o s function como as.date(), as.Date(), chron(), o as.POSIXct(). Así que estaba buscando algo como as.time(), pero no pude encontrarlo. ¿Debo agregar una fecha inventada y convertir todo en POSIX() fecha-hora class, luego usar difftime()?

¿Cuál es la mejor práctica de tiempo de manipulación en R?

Respuesta

15

Es necesario utilizar strptime() para convertir la cadena en una fecha. Por ejemplo:

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

, entonces puede tomar diferencias con sólo tomar uno lejos del otro:

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

Puede guardar este y luego hacer un as.numeric() si lo que desea el número, de lo contrario se puede pasar alrededor de los objetos del tiempo.

Espero que esto ayude!

+0

actualizada por lubridate –

1

una opción es usar expresiones regulares. si no está familiarizado con ellos, se utilizan para analizar cadenas utilizando patrones. me gustaría investigar las expresiones regulares y luego here are the functions in r

espero que ayude

Cuestiones relacionadas