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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top