J'ai des données qui ressemble à ceSubset dataframe base des dates non séquentielles
df<-data.frame(datecol=as.Date(c("2010-04-03","2010-04-04","2010-04-05","2010-04-06","2010-04-07",
"2010-04-03","2010-04-04","2010-04-05","2010-04-06","2010-04-07",
"2010-05-06","2010-05-07","2010-05-09","2010-06-06","2010-06-07")),x=c(1,1,1,0,1,1,1,0,0,0,1,0,0,0,1),type=c(rep("A",5),rep("B",5),rep("C",5)))
> df
datecol x type
1 2010-04-03 1 A
2 2010-04-04 1 A
3 2010-04-05 1 A
4 2010-04-06 0 A
5 2010-04-07 1 A
6 2010-04-03 1 B
7 2010-04-04 1 B
8 2010-04-05 0 B
9 2010-04-06 0 B
10 2010-04-07 0 B
11 2010-05-06 1 C
12 2010-05-07 0 C
13 2010-05-09 0 C
14 2010-06-06 0 C
15 2010-06-07 1 C
je dois sous-ensemble cette trame de données par type, où je ne garde que les « types » qui ont 2 ou plusieurs dates et ces dates sont au moins 1 jour d'intervalle. Dans l'exemple ci-dessus, le type A a 4 dates différentes, et le type C a 2 dates différentes qui sont distantes de plus d'un jour, donc je veux les enregistrer comme une nouvelle base de données. Le type B a 2 dates différentes, mais elles ne sont pas à 1 jour d'intervalle, donc je ne veux pas le garder.
Je pensais faire en boucle compter combien de dates uniques sont dans chaque type, laissez tout ce qui a plus de 2 dates différentes. Ensuite, je regarderais ceux qui n'ont que deux dates différentes et calculer la distance entre eux et ne laisser que ceux où la distance est supérieure à 1. Mais il semble qu'il devrait y avoir un moyen plus efficace. Des idées?
génial, merci! :) – Liza
Vous êtes les bienvenus :) – LyzandeR