如何按R中的日期范围拆分时间序列数据



我是R的初学者,正在研究时间序列月度数据:

我已经从我的数据帧中选择了以下数据列

df = select(data, Date, Location, Production,  Value)

有13个不同的地点,多个生产部门及其价值。日期范围为2016-01-2020-09。

我想将数据分为两列:新冠肺炎之前(2016-01至2020-01(和新冠肺炎之后(2020-02至2020-09(。如何在R中执行此操作?有简单的方法吗?

我想你正在寻找这样的东西。这是一个tidy解决方案。有几种类似的方法可以做到这一点,但我认为这很简单。

library(dplyr)
df %>% 
mutate(PreCovid = ifelse(Date < as.Date("2020-02-01"), Value, NA), 
PostCovid = ifelse(Date >= as.Date("2020-02-01"), Value, NA))

我们可以先转换为日期类,然后指定要划分数据的范围。

library(dplyr)
df <- df %>%
mutate(Date = as.Date(paste0(Date, '-01')), 
period = case_when(between(Date, as.Date('2016-01-01'), 
as.Date('2020-01-01')) ~ 'Before covid', 
between(Date, as.Date('2020-01-02'), 
as.Date('2020-11-01')) ~ 'After covid'))