Comment sous-définir par une plage de dates dans R (avec exemples)
Le moyen le plus simple de sous-définir un bloc de données par une plage de dates dans R consiste à utiliser la syntaxe suivante :
df[df$date >= "some date" & df$date <= "some date", ]
Ce tutoriel fournit plusieurs exemples d’utilisation pratique de cette fonction.
Exemple 1 : sous-ensemble entre deux dates
Le code suivant montre comment sélectionner les lignes d’un bloc de données comprises entre deux dates incluses :
#make this example reproducible set.seed(0) #create data frame df <- data.frame(date = as.Date("2021-01-01") - 0:19, sales = runif(20, 10, 500) + seq(50, 69)^2) #view first six rows head(df) date sales 1 2021-01-01 2949.382 2 2020-12-31 2741.099 3 2020-12-30 2896.341 4 2020-12-29 3099.698 5 2020-12-28 3371.022 6 2020-12-27 3133.824 #subset between two dates, inclusive df[df$date >= "2020-12-25" & df$date <= "2020-12-28", ] date sales 5 2020-12-28 3371.022 6 2020-12-27 3133.824 7 2020-12-26 3586.211 8 2020-12-25 3721.891
Il vous suffit de modifier les signes supérieur et inférieur pour sélectionner les lignes comprises entre deux dates, exclusives :
#make this example reproducible set.seed(0) #create data frame df <- data.frame(date = as.Date("2021-01-01") - 0:19, sales = runif(20, 10, 500) + seq(50, 69)^2) #subset between two dates, exclusive df[df$date > "2020-12-25" & df$date < "2020-12-28", ] date sales 6 2020-12-27 3133.824 7 2020-12-26 3586.211
Exemple 2 : sous-ensemble après une certaine date
Le code suivant montre comment sélectionner les lignes d’un bloc de données qui apparaissent après une certaine date :
#make this example reproducible set.seed(0) #create data frame df <- data.frame(date = as.Date("2021-01-01") - 0:19, sales = runif(20, 10, 500) + seq(50, 69)^2) #subset after a certain date df[df$date >= "2020-12-22", ] date sales 1 2021-01-01 2949.382 2 2020-12-31 2741.099 3 2020-12-30 2896.341 4 2020-12-29 3099.698 5 2020-12-28 3371.022 6 2020-12-27 3133.824 7 2020-12-26 3586.211 8 2020-12-25 3721.891 9 2020-12-24 3697.791 10 2020-12-23 3799.266 11 2020-12-22 3640.275
Exemple 3 : sous-ensemble avant une certaine date
Le code suivant montre comment sélectionner les lignes d’un bloc de données qui se produisent avant une certaine date :
#make this example reproducible set.seed(0) #create data frame df <- data.frame(date = as.Date("2021-01-01") - 0:19, sales = runif(20, 10, 500) + seq(50, 69)^2) #subset before a certain date df[df$date < "2020-12-22", ] date sales 12 2020-12-21 3831.928 13 2020-12-20 3940.513 14 2020-12-19 4315.641 15 2020-12-18 4294.211 16 2020-12-17 4612.222 17 2020-12-16 4609.873 18 2020-12-15 4850.633 19 2020-12-14 5120.034 20 2020-12-13 4957.217
Ressources additionnelles
Comment tracer une série chronologique dans R
Comment extraire l’année à partir de la date dans R
Comment agréger les données quotidiennes en données mensuelles et annuelles dans R