Vous devez convertir vos dates de caractères en un type Date
avec as.Date()
(ou un type POSIX si vous avez plus d'informations comme l'heure du jour). Ensuite, vous pouvez faire des comparaisons avec la norme relational operators comme < = et> =.
Vous devez envisager d'utiliser un package de timeseries tel que zoo
pour cela.
Modifier:
Juste pour répondre à votre commentaire, voici un exemple d'utilisation dates avec votre vecteur existant:
> as.Date(names(bar)) < as.Date("2001-10-14")
[1] TRUE FALSE FALSE
> bar[as.Date(names(bar)) < as.Date("2001-10-14")]
1997-10-14
1
Bien que vous devriez vraiment utiliser un ensemble de séries chronologiques. Voici comment vous pouvez le faire avec zoo
(ou xts
, timeSeries
, fts
, etc.):
library(zoo)
ts <- zoo(c(1, 2, 1), as.Date(c("1997-10-14", "2001-10-14", "2007-10-14")))
ts[index(ts) < as.Date("2001-10-14"),]
Comme l'indice est maintenant un type Date
, vous pouvez faire autant de comparaisons que vous le souhaitez. Lisez la vignette zoo
pour plus d'informations.
FYI: Vous créez un vecteur numérique nommé, pas une liste. – Shane