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))
3 Réponses :
Faites-le plutôt dans la colonne des 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))
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))