добавление +1 к кварталам (датам) в R - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть данные ниже, и я хочу добавить 1 к каждому из кварталов (т. Е. Продвинуть квартал на 1 квартал вперед)

Я могу сделать d$quarter + 1, но это дает мне четверть 4как "четверть 5".Как я могу перенести четвертый квартал в первый квартал следующего года?

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))

Ответы [ 3 ]

2 голосов
/ 26 сентября 2019
d2 <- d %>%  mutate(new_date = dates %m+% months(3)) %>% 
  mutate(quarter2 = quarter(new_date),
         year2 = year(new_date)) 
2 голосов
/ 26 сентября 2019

Вы можете использовать по модулю 4, чтобы 4 равнялся 0 без изменения 1 на 3, а затем добавить 1:

d <- data.frame(dates, x_var) %>% mutate(quarter = (quarter(dates)%%4)+1, year = year(dates))
2 голосов
/ 26 сентября 2019

Вместо этого сделайте это в столбце дат

d$nextquarter <- d$dates + months(3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...