Вычитание дат
Как и с числовыми значениями, над датами можно выполнять арифметические операции. В частности, разность между двумя датами в днях можно найти с помощью вычитания:
today <- as.Date("2017-01-02")
tomorrow <- as.Date("2017-01-03")
one_year_away <- as.Date("2018-01-02")
tomorrow - today
Time difference of 1 days
one_year_away - today
Time difference of 365 days
Того же результата можно достичь с помощью функции difftime(), которая вычисляет временной интервал.
difftime(tomorrow, today)
Time difference of 1 days
# С дополнительными параметрами!
difftime(tomorrow, today, units = "secs")
Time difference of 86400 secs
Это упражнение является частью курса
Средний уровень R для финансов
Инструкции к упражнению
- Вектор
datesуже создан для вас. - С помощью вычитания можно убедиться, что 1 января 1970 года — это первая дата, от которой ведёт отсчёт R. Сначала создайте переменную
origin, содержащую дату"1970-01-01". - Теперь примените
as.numeric()кdates, чтобы узнать, сколько дней прошло с 1 января 1970 года. - Наконец, вычтите
originизdates, чтобы проверить результат! (Обратите внимание, как здесь используется переработка элементов!)
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Dates
dates <- as.Date(c("2017-01-01", "2017-01-02", "2017-01-03"))
# Create the origin
origin <- ___
# Use as.numeric() on dates
___
# Find the difference between dates and origin
___