Дата
Если d
относится к классу Date
, то as.numeric(d)
дает число дней с начала эпохи UNIX (1 января 1970 г.).Если в регрессии используется переменная класса Date
, то есть числовой вектор, используемый, как показано в этом примере.
y <- (1:10)^2
x <- as.Date("2000-01-01") + 0:9
xx <- as.numeric(x)
identical(unname(coef(lm(y ~ x))), unname(coef(lm(y ~ xx))))
## [1] TRUE
yearmon и yearqtr
В пакете zoo есть yearmon
иyearqtr
классы, которые отображаются, как показано ниже, но представлены внутри как год + дробь.Для yearmon
доля равна 0 для января, 1/12 для февраля, ..., 11/12 для декабря. Для yearqtr
доля равна 0 для Q1, 1/4 для Q2, 2/4 для Q3 и3/4 для Q4.
Вот как объекты этих классов отображаются по умолчанию.format
может использоваться для получения других форматов.Смотрите ?yearmon
в пакете zoo.
library(zoo)
as.yearmon("2000-01")
## [1] "Jan 2000"
as.yearqtr("2000-1")
## [1] "2000 Q1"
Здесь мы показываем, что регрессия к переменной yearmon
такая же, как регрессия для ее числового представления.Аналогичный пример можно привести для yearqtr
.y
сверху.
ym <- as.yearmon(2000) + 0:9/12
num <- as.numeric(ym)
identical(unname(coef(lm(y ~ ym))), unname(coef(lm(y ~ num))))
## [1] TRUE
недель
Функция одной строки nextfri
, определенная в этой виньетке зоопарка:
https://cran.r -проект.org / web / packages / zoo / vignettes / zoo-quickref.pdf
может использоваться для стандартизации дат только по пятницам.Замените 5 в этой формуле другим числом от 0 до 6, чтобы получить этот день недели.
library(zoo)
yy <- (1:365)^2
ww <- nextfri(as.Date("2019-01-01") + 0:364)
# regress yy on next Friday
lm(yy ~ ww)