Cara menghitung selisih dua tanggal di sas
Anda dapat menggunakan fungsi INTCK di SAS untuk menghitung perbedaan antara dua tanggal di SAS dengan cepat.
Fungsi ini menggunakan sintaks dasar berikut:
INTCK (interval, tanggal mulai, data akhir, metode)
Emas:
- interval : Interval untuk menghitung (hari, minggu, bulan, tahun, dll.)
- tanggal mulai : Tanggal mulai
- tanggal akhir : Tanggal akhir
- metode : apakah akan menghitung interval penuh (‘D’ = Tidak (default), ‘C’ = Ya)
Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.
Contoh: Hitung selisih antar tanggal di SAS
Katakanlah kita memiliki kumpulan data berikut di SAS yang berisi dua variabel tanggal:
/*create dataset*/
data original_data;
format start_date end_date date9. ;
input start_date: date9. end_date: date9. ;
datalines ;
01JAN2022 09JAN2022
01FEB2022 22FEB2022
14MAR2022 04APR2022
01MAY2022 14AUG2022
;
run ;
/*view dataset*/
proc print data = original_data;
Kita dapat menggunakan kode berikut untuk menghitung selisih nilai variabel start_date dan end_date dalam hari, minggu, dan bulan:
/*create new dataset*/
data new_data;
set original_data;
days_diff = intck (' day ', start_date, end_date);
weeks_diff = intck (' weeks ', start_date, end_date);
months_diff = intck (' months ', start_date, end_date);
run ;
/*view new dataset*/
proc print data =new_data;
Ketiga variabel baru tersebut menunjukkan perbedaan antara tanggal_mulai dan tanggal_akhir dalam hitungan hari, minggu, dan bulan.
Perhatikan bahwa kita dapat menggunakan argumen ‘ c ‘ dalam fungsi INTCK untuk hanya menghitung selisih hari, minggu, dan bulan penuh:
/*create new dataset*/
data new_data;
set original_data;
days_diff = intck (' day ', start_date, end_date, ' c ');
weeks_diff = intck (' weeks ', start_date, end_date, ' c ');
months_diff = intck (' months ', start_date, end_date, ' c ');
run ;
/*view new dataset*/
proc print data =new_data;
Perhatikan perbedaan antara tabel ini dan tabel sebelumnya.
Dalam tabel ini, selisih minggu antara tanggal 1 Januari dan 9 Januari dihitung sebagai 1 karena hanya satu minggu penuh yang dapat ditampung di antara tanggal-tanggal tersebut.
Namun, pada tabel sebelumnya, selisih minggu dihitung sebesar 2 karena terdapat dua minggu parsial yang jatuh di antara kedua tanggal tersebut.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di SAS:
Cara menormalkan data di SAS
Bagaimana cara mengganti karakter dalam string di SAS
Bagaimana cara mengganti nilai yang hilang dengan nol di SAS
Cara menghapus duplikat di SAS