Si possono creare date in R da tipi numerici, anche valori frazionari. Non è molto comune, ma accade per esempio quando si calcola la media delle date. Purtroppo, sembrano rompere split
perché divide coerce di divisione in numero intero in R e c'è una soluzione alternativa
> as.Date(-1, origin = "1970-01-01")
[1] "1969-12-31"
> as.Date(-1.0001, origin = "1970-01-01")
[1] "1969-12-30"
> split(as.Date(-1, origin = "1970-01-01"), 1)[[1]]
[1] "1969-12-31"
> split(as.Date(-1.0001, origin = "1970-01-01"), 1)[[1]]
[1] "1969-12-31" #this is wrong
> unclass(split(as.Date(-1, origin = "1970-01-01"), 1)[[1]])
[1] -1
> unclass(split(as.Date(-1.0001, origin = "1970-01-01"), 1)[[1]])
[1] -1 #this is "why"
Così due date che erano differenti sono fatti uguali da un split
. Le persone sono d'accordo che questo è un bug o mi manca la ragione profonda? Qualche soluzione alternativa? Grazie
Soluzione di lavoro: 'lapply (split (as.character (date), index) as.Date)'. Conserva la data ma modifica la rappresentazione sottostante. Ha bisogno di un 'lapply', lento in certi casi. – piccolbo