Pregunta

tengo una variable llamada Started que es la fecha en la que los sujetos humanos incluidos en un estudio y otro variable llamada dos1 que es la fecha en la que el sujeto tenía la última cirugía. Quiero averiguar cómo muchos meses desde su última cirugía para el día de la inscripción. Probé:

as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))

Me esperaba que esto me da algo como:

14, 18, 1, 26 

Con cada número es el número de meses.

En lugar llego:

1 year, -4 months, -5 days and -1 hours   1 year, -5 months, -23 days and -1 hours   1 year, -7 months, 2 days and -1 hours   1 year, -8 months, -28 days and 1 hour   1 year, -7 months, -23 days and 1 hour.   

¿Cómo puedo obtener sólo el valor numérico de meses?

¿Fue útil?

Solución

Se podría tratar de usar difftime lugar, es decir:

difftime(syrrupan$Started,syrrupan$dos1,units="days")

Tenga en cuenta que esto le dará un objeto de la clase difftime, si quieres un vector numérico, envolver un as.numeric alrededor de ella. Tenga en cuenta también que no se puede elegir meses como una opción para las unidades, pero que realmente debería seguir con una unidad de tiempo que tiene una longitud fija.

Otros consejos

Esto es definitivamente un error en lubridate. He hecho un informe de errores y fijaré para la versión 0.1:

http://github.com/hadley/lubridate/issues#issue/75

Gracias por traer a mi atención.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top