如何使用sas中的intck函数(附示例)


您可以使用SAS中的INTCK函数来快速计算SAS中两个日期之间的差异。

该函数使用以下基本语法:

INTCK(间隔、开始日期、结束数据、方法)

金子:

  • Interval : 计算的时间间隔(日、周、月、季度、年等)
  • 开始日期:开始日期
  • 结束日期:结束日期
  • method : 使用离散或连续方法计算间隔

下面的例子展示了如何在实际中使用这个功能。

示例:使用 INTCK 函数计算 SAS 中日期之间的差异

假设 SAS 中有以下数据集,其中包含两个日期变量:

 /*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 14AUG2023
06AUG2022 10NOV2024
;
run ;

/*view dataset*/
proc print data = original_data; 

我们可以使用下面的代码来计算start_dateend_date变量的值以天、周、月、季度和年为单位的差值:

 /*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);
    qtr_diff = intck (' qtr ', start_date, end_date);
    years_diff = intck (' years ', start_date, end_date);
run ;

/*view new dataset*/
proc print data = new_data; 

SAS中的INTCK函数

五个新变量以天、周、月、季度和年的形式显示start_dateend_date之间的差异。

请注意,我们可以在INTCK函数中使用“ c ”参数来仅计算整日、周、月、季度和年的差异:

 /*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 ');
    qtr_diff = intck (' qtr ', start_date, end_date, ' c ');
    years_diff = intck (' years ', start_date, end_date, ' c ');
run ;

/*view new dataset*/
proc print data = new_data; 

请注意此表与上表之间的差异。

在此表中,1 月 1 日和 1 月 9 日之间的周差计算为1 ,因为这些日期之间只能容纳一整周。

然而,在上表中,周数差异计算为2 ,因为这两个日期之间有两个部分周数。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何将日期时间转换为SAS中的日期
如何在 SAS 中添加迄今为止的天数
如何从 SAS 中的日期获取星期几

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注