Вам необходимо преобразовать даты из символов в тип Date
с помощью as.Date()
(или типа POSIX, если у вас есть больше информации, например, о времени суток). Затем вы можете сделать сравнение со стандартными реляционными операторами , такими как <= и> =.
Вам следует рассмотреть возможность использования пакета временных рядов, такого как zoo
.
Редактировать :
Чтобы ответить на ваш комментарий, вот пример использования дат с существующим вектором:
> 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
Хотя вам действительно следует использовать пакет временных рядов. Вот как это можно сделать с помощью zoo
(или xts
, timeSeries
, fts
и т. Д.):
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"),]
Поскольку индекс теперь имеет тип Date
, вы можете сделать столько сравнений, сколько захотите. Прочитайте zoo
виньетка для получения дополнительной информации.