R中的时间序列虚拟

时间:2018-09-04 08:54:36

标签: r statistics time-series dummy-data

我有一个数据集,其中一列代表每月的日期:从2004年2月1日到2008年9月1日,我必须为2008年的日期创建一个虚拟对象。我尝试使用:

dummy <- as.numeric(Date >= 01/01/2008)

但是R对我说:

  

“> =对因素没有意义”

因此,我尝试将因子变量Date转换为数字1,但是我所有的Date都消失了,取而代之的是一些随机数。

2 个答案:

答案 0 :(得分:0)

这会创建一些数据:

dat <- data.frame(
  date = c("01/01/2017", "02/01/2017", "01/01/2018")
)

现在我们首先获得正确的日期格式,然后创建虚拟对象:

dat$date <- strptime(as.character(dat$date), "%d/%m/%Y") # correct date format
dat$date <- format(dat$date, "%Y-%m-%d") # change to Date variable

# create dummy:
dat$dummy <- 0 
dat$dummy[which(dat$date >= "2018-01-01")] <- 1

输出:

        date dummy
1 2017-01-01     0
2 2017-01-02     0
3 2018-01-01     1

答案 1 :(得分:0)

使用@RLave的答案的一行命令:

{}