Frecuencias de conteo de fechas continuas
Frecuentes
Visto 193 veces
3
Tengo un data.frame en la forma:
Date
2011-08-16
2011-08-17
2011-08-28
2011-09-01
2011-09-05
2011-09-06
2011-10-01
2011-10-02
2011-10-03
2011-10-04
Lo que me gustaría hacer es tomar un conteo de ejecución cuando las fechas ocurren en orden, es decir, están una al lado de la otra.
En el ejemplo anterior, tendríamos 2,1,1,2,4
1 Respuestas
5
Qué tal esto:
Hacer datos de ejemplo reproducibles:
dat <- read.table(text = "2011-08-16
2011-08-17
2011-08-28
2011-09-01
2011-09-05
2011-09-06
2011-10-01
2011-10-02
2011-10-03
2011-10-04")
Obtenga el conteo de ejecución de fechas consecutivas usando rle
, Siguiendo esta respuesta y esta respuesta:
(rle (cumsum( c(0, diff(as.Date(dat$V1)) > 1) ) ) )$lengths
[1] 2 1 1 2 4
contestado el 23 de mayo de 17 a las 11:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas r or haz tu propia pregunta.
Gracias. ¡No sabía sobre diff! Sin embargo, no necesitas cumsum para esto. - David
@davewolfs No estoy seguro de lo que quieres decir con no necesitar
cumsum
. Si lo dejo así:(rle (( c(0, diff(as.Date(dat$V1)) > 1) ) ) )$lengths
entonces obtengo algo diferente a lo que quieres:[1] 2 3 1 1 3
- paquetruns <- rle(c(1,diff(as.Date(dat$Date)) > 1)) table(runs$lengths[runs$values == 0])
- David