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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *