Это - больше совета, чем определенный ответ, но мое предложение состоит в том, чтобы преобразовать даты, чтобы сразу датировать переменные, вместо того, чтобы сохранить их как строки. Таким образом, можно использовать дату (и время) функции на них, вместо того, чтобы пытаться использовать очень неприятные обходные решения.
, Как указано, lubridate пакет имеет хорошие функции извлечения.
Для некоторых проектов, я нашел, что соединение дат из запуска полезно: создайте год, месяц, день (месяца) и день (недели) переменные для запуска с. Это может упростить сводки, таблицы и графики, потому что код извлечения является отдельным от сводной/таблицы/графика кода, и потому что, если необходимо изменить его, Вы не должны развертывать те изменения в нескольких местах.
Если Вы используете date
пакет , это может быть сделано довольно легко.
library(date)
Date <- c("01/01/2009", "01/01/2010", "01/01/2011", "01/01/2012")
Date <- as.date(Date)
Date
# [1] 1Jan2009 1Jan2010 1Jan2011 1Jan2012
date.mdy(Date)$year
# [1] 2009 2010 2011 2012
## be aware that these are now integers and thus different methods may be invoked:
str(date.mdy(Date)$year)
# int [1:4] 2009 2010 2011 2012
summary(Date)
# First Last
# "1Jan2009" "1Jan2012"
summary(date.mdy(Date)$year)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 2009 2010 2010 2010 2011 2012