Cara memfilter berdasarkan tanggal menggunakan dplyr


Anda dapat menggunakan metode berikut untuk memfilter bingkai data berdasarkan tanggal di R menggunakan paket dplyr :

Metode 1: Filter baris berdasarkan tanggal

 df %>% filter(date_column > ' 2022-01-01 ')

Metode 2: Filter baris sebelum tanggal

 df %>% filter(date_column < ' 2022-01-01 ') 

Metode 3: Filter baris antara dua tanggal

 df %>% filter(between(date_column, as. Date (' 2022-01-20 '), as. Date (' 2022-02-20 ')))

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut di R:

 #create data frame
df <- data. frame (day=seq( as.Date (' 2022-01-01 '), by = ' week ', length.out = 10 ),
                 sales=c(40, 35, 39, 44, 48, 51, 23, 29, 60, 65))

#view data frame
df

          day sales
1 2022-01-01 40
2 2022-01-08 35
3 2022-01-15 39
4 2022-01-22 44
5 2022-01-29 48
6 2022-02-05 51
7 2022-02-12 23
8 2022-02-19 29
9 2022-02-26 60
10 2022-03-05 65

Contoh 1: Filter baris berdasarkan tanggal

Kita dapat menggunakan kode berikut untuk memfilter baris dari bingkai data yang memiliki tanggal setelah 25/01/2022:

 library (dplyr)

#filter for rows with date after 1/25/2022
df %>% filter(day > ' 2022-01-25 ')

         day sales
1 2022-01-29 48
2 2022-02-05 51
3 2022-02-12 23
4 2022-02-19 29
5 2022-02-26 60
6 2022-03-05 65

Setiap baris dalam bingkai data yang dihasilkan memiliki tanggal setelah 25/01/2022.

Contoh 2: Filter baris sebelum tanggal

Kita dapat menggunakan kode berikut untuk memfilter baris dari bingkai data yang tanggalnya sebelum 25/01/2022:

 library (dplyr)

#filter for rows with date before 1/25/2022
df %>% filter(day < ' 2022-01-25 ')

         day sales
1 2022-01-01 40
2 2022-01-08 35
3 2022-01-15 39
4 2022-01-22 44

Setiap baris dalam bingkai data yang dihasilkan memiliki tanggal sebelum 25/01/2022.

Contoh 3: Filter baris antara dua tanggal

Kita dapat menggunakan kode berikut untuk memfilter baris dari bingkai data yang tanggalnya antara 20/01/2022 dan 20/02/2022:

 library (dplyr)

#filter for rows with dates between 1/20/2022 and 2/20/2022
df %>% filter(between(date_column, as. Date (' 2022-01-20 '), as. Date (' 2022-02-20 '))) 

         day sales
1 2022-01-22 44
2 2022-01-29 48
3 2022-02-05 51
4 2022-02-12 23
5 2022-02-19 29

Setiap baris dalam bingkai data yang dihasilkan memiliki tanggal antara 20/01/2022 dan 20/02/2022.

Catatan #1 : Jika salah satu metode di atas tidak berhasil, Anda mungkin perlu mengonversi tanggal yang sedang Anda kerjakan terlebih dahulu ke dalam format tanggal yang dapat dikenali menggunakan as.Date( function ) .

Catatan #2 : Anda dapat menemukan dokumentasi lengkap fungsi filter di dplyr di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di dplyr:

Cara memfilter baris yang berisi string tertentu menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr
Cara menggunakan filter “tidak termasuk” di dplyr

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *