Avere ritorno sottrazione lubridate solo un valore numerico
Domanda
ho una variabile chiamata Started
, che è la data in cui soggetti umani arruolati in uno studio e un altro variabile chiamata dos1
che è la data in cui il soggetto dell'ultimo avuto un intervento chirurgico. Voglio capire come molti mesi dalla loro ultima intervento chirurgico per il giorno dell'iscrizione. Ho provato:
as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))
mi aspettavo questo a darmi qualcosa di simile:
14, 18, 1, 26
Con ogni numero è il numero di mesi.
Invece ottengo:
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.
Come posso ottenere solo il valore numerico di mesi?
Soluzione
Si potrebbe provare a utilizzare difftime
invece, vale a dire:
difftime(syrrupan$Started,syrrupan$dos1,units="days")
Si noti che questo vi darà un oggetto della classe difftime
, se si vuole un vettore numerico, avvolgere un as.numeric
intorno ad esso. Si noti inoltre che non si può scegliere mesi come opzione per le unità, ma si dovrebbe davvero attaccare con un'unità di tempo che ha una lunghezza fissa.
Altri suggerimenti
Questo è sicuramente un bug in lubridate. Ho fatto un rapporto di errore e sarà risolvere il problema per la versione 0.1:
http://github.com/hadley/lubridate/issues#issue/75
Grazie per aver portato alla mia attenzione.