Вам нужно преобразовать даты из символов в тип 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
для получения дополнительной информации.
person
Shane
schedule
29.04.2010