R 如何创建季节性虚拟对象

R 如何创建季节性虚拟对象,r,time-series,dummy-variable,R,Time Series,Dummy Variable,我想用一个季节性模型来拟合电价的线性模型。因此,“DK.days”包含10年内每年的天数 head(DK.days) [1] "2007-01-01" "2007-01-02" "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-06" 这是代码的其余部分 month <- as.numeric(format(DK.days, "%m")) MD <- t(sapply(month, "==", c(1:12,0)))+0 MD <

我想用一个季节性模型来拟合电价的线性模型。因此,“DK.days”包含10年内每年的天数

head(DK.days)
[1] "2007-01-01" "2007-01-02" "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-06"
这是代码的其余部分

month <- as.numeric(format(DK.days, "%m"))
MD <- t(sapply(month, "==", c(1:12,0)))+0
MD <- MD[,-13]
dimnames(MD) <- list(NULL, c("Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Noe", "Dec"))
> head(MD)
      Jan Feb Mar Apr May June July Aug Sep Oct Noe Dec
[1,]   1   0   0   0   0    0    0   0   0   0   0   0
[2,]   1   0   0   0   0    0    0   0   0   0   0   0

month您可以使用
zoo
软件包:

library(zoo)
yq <- as.yearqtr(as.yearmon(DK.days) + 1/12) #+1/12 to shift one month
DK.seasons <- factor(format(yq, "%q"), levels = 1:4,
                     labels = c("winter", "spring", "summer", "fall"))
library(mlr)
DK.final <- cbind(DK.final,createDummyFeatures(DK.final[,2], cols = "var"))
生成虚拟变量: 如果希望列作为每个季节的虚拟变量,请使用
mlr
package:

library(zoo)
yq <- as.yearqtr(as.yearmon(DK.days) + 1/12) #+1/12 to shift one month
DK.seasons <- factor(format(yq, "%q"), levels = 1:4,
                     labels = c("winter", "spring", "summer", "fall"))
library(mlr)
DK.final <- cbind(DK.final,createDummyFeatures(DK.final[,2], cols = "var"))

请阅读,以便我可以在您的数据上测试解决方案;嘿,谢谢你的回答,但是我需要一个有四列的矩阵-每个季度一列。矩阵应该包括1和0-1,如果日期属于季节-例如在“01-01-2007”行中,我需要在第一列(“冬季”)中有一个,在其他三列中有零。如果您需要有关数据集的其他信息,请告诉我应该提供什么。
library(mlr)
DK.final <- cbind(DK.final,createDummyFeatures(DK.final[,2], cols = "var"))
> DK.final

#       DK.days DK.seasons winter spring summer fall 
# 1  2016-01-01     winter      1      0      0    0 
# 2  2016-02-29     winter      1      0      0    0 
# 3  2016-03-02     spring      0      1      0    0 
# 4  2016-04-03     spring      0      1      0    0 
# 5  2016-05-04     spring      0      1      0    0 
# 6  2016-06-05     summer      0      0      1    0 
# 7  2016-07-06     summer      0      0      1    0 
# 8  2016-08-10     summer      0      0      1    0 
# 9  2016-09-06       fall      0      0      0    1 
# 10 2016-10-06       fall      0      0      0    1 
# 11 2016-11-06       fall      0      0      0    1 
# 12 2016-12-06     winter      1      0      0    0