2
votes

ajouter +1 aux trimestres (dates) dans R

J'ai les données ci-dessous et je veux ajouter un 1 à chacun des trimestres (c'est-à-dire avancer le trimestre d'un quart)

Je peux faire d $ quarter + 1 mais cela me donne le quart 4 comme "quart 5". Comment puis-je passer du quatrième trimestre au premier trimestre de l'année suivante?

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

r

0 commentaires

3 Réponses :


2
votes

Faites-le plutôt dans la colonne des dates

d$nextquarter <- d$dates + months(3)


0 commentaires

2
votes
d2 <- d %>%  mutate(new_date = dates %m+% months(3)) %>% 
  mutate(quarter2 = quarter(new_date),
         year2 = year(new_date)) 

0 commentaires

2
votes

Vous pouvez utiliser modulo 4 pour avoir 4 comme 0 sans changer 1 en 3 puis ajouter 1:

d <- data.frame(dates, x_var) %>% mutate(quarter = (quarter(dates)%%4)+1, year = year(dates))


0 commentaires