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

Tambahkan komentar

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