我有以下数据,我想为每个季度添加一个1
(即将季度提前 1 个季度(
我可以做d$quarter + 1
但这给了我第 4 季度作为"第 5 季度"。如何将第四季度结转到下一年的第 1 季度?
Data:
library(lubridate)
dates <- sample(seq(as.Date('2005/01/01'), as.Date('2010/01/01'), by="day"), 1000)
x_var <- rnorm(1000)
d <- data.frame(dates, x_var) %>%
mutate(quarter = quarter(dates),
year = year(dates))
您可以使用模 4 将 4 设置为 0,而无需将 1 更改为 3,然后添加 1:
d <- data.frame(dates, x_var) %>% mutate(quarter = (quarter(dates)%%4)+1, year = year(dates))
改为在日期列上执行此操作
d$nextquarter <- d$dates + months(3)
d2 <- d %>% mutate(new_date = dates %m+% months(3)) %>%
mutate(quarter2 = quarter(new_date),
year2 = year(new_date))