كيفية استخدام وظيفة intnx في sas (مع أمثلة)
يمكنك استخدام الدالة INTNX في SAS لزيادة التاريخ بفاصل زمني محدد مثل يوم أو أسبوع أو شهر وما إلى ذلك.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
INTNX (الفاصل الزمني، تاريخ البدء، الزيادة)
ذهب:
- الفاصل الزمني : الفاصل الزمني المراد إضافته إلى التاريخ (يوم، أسبوع، شهر، سنة، إلخ.)
- start_date : المتغير الذي يحتوي على تواريخ البدء
- الزيادة : عدد الفواصل الزمنية المراد إضافتها
لطرح فاصل زمني، قم بتوفير رقم سالب لوسيطة الزيادة .
توضح الأمثلة التالية بعض الطرق الشائعة لاستخدام الدالة INTNX عمليًا مع مجموعة البيانات التالية في SAS:
/*create dataset*/
data original_data;
date format date9.;
input date:date9. dirty;
datalines ;
01JAN2022 50
01FEB2022 34
14MAR2022 26
01MAY2022 22
24AUG2022 27
28OCT2022 48
14NOV2022 97
04DEC2022 88
;
run ;
/*view dataset*/
proc print data = original_data;
مثال 1: استخدم INTNX لإضافة أيام إلى هذا اليوم
يمكننا استخدام الدالة INTNX لإنشاء عمود جديد يسمى plus5days يضيف خمسة أيام إلى كل تاريخ في عمود التاريخ :
/*create new dataset with column that adds 5 days to date*/
data new_data;
set original_data;
plus5days= intnx ('day', date, 5);
format plus5days date9.;
run ;
/*view dataset*/
proc print data = new_data;
لاحظ أن العمود الجديد المسمى plus5days يحتوي على القيم من عمود التاريخ مع إضافة خمسة أيام.
مثال 2: استخدم INTNX لطرح الأيام من التاريخ
يمكنك أيضًا طرح الأيام ببساطة عن طريق استخدام قيمة سالبة في الدالة INTNX .
على سبيل المثال، يمكننا استخدام الكود التالي لطرح خمسة أيام من كل قيمة في عمود التاريخ :
/*create new dataset with column that subtracts 5 days from date*/
data new_data;
set original_data;
minus5days= intnx ('day', date, -5);
format minusdays date9.;
run ;
/*view dataset*/
proc print data = new_data;
لاحظ أن العمود الجديد المسمى minus5days يحتوي على القيم من عمود التاريخ مع طرح خمسة أيام.
مثال 3: استخدم INTNX للعثور على اليوم الأول من الشهر
يمكننا استخدام الدالة INTNX لإنشاء عمود جديد يسمى الشهر الأول والذي يحتوي على اليوم الأول من الشهر لكل تاريخ في عمود التاريخ :
/*create new dataset with column that contains first day of the month*/
data new_data;
set original_data;
firstmonth = intnx ('month', date, 0);
format firstmonth date9.;
run ;
/*view dataset*/
proc print data =new_data;
لاحظ أن العمود الجديد المسمى الشهر الأول يحتوي على اليوم الأول من الشهر لكل تاريخ في عمود التاريخ .
مثال 4: استخدم INTNX للعثور على اليوم الأول من السنة
يمكننا أيضًا استخدام الدالة INTNX لإنشاء عمود جديد يسمى السنة الأولى والذي يحتوي على اليوم الأول من السنة لكل تاريخ في عمود التاريخ :
/*create new dataset with column that contains first day of the year*/
data new_data;
set original_data;
firstyear = intnx ('year', date, 0);
format firstyear date9.;
run ;
/*view dataset*/
proc print data =new_data;
لاحظ أن العمود الجديد المسمى السنة الأولى يحتوي على اليوم الأول من السنة لكل تاريخ في عمود التاريخ .
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة SAS INTNX هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في SAS:
كيفية تحويل DateTime إلى تاريخ في SAS
كيفية تحويل متغير رقمي حتى الآن في SAS
كيفية حساب الفرق بين تاريخين في SAS