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


您可以使用 SAS 中的INTNX函数按特定间隔(例如一天、一周、一个月等)递增日期。

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

INTNX(间隔、开始日期、增量)

金子:

  • Interval :添加到日期的间隔(日、周、月、年等)
  • start_date :包含开始日期的变量
  • 增量:要添加的间隔数

要减去一个间隔,请为增量参数提供一个负数。

以下示例展示了在实践中针对 SAS 中的以下数据集使用INTNX函数的一些常见方法:

 /*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的新列包含日期列中添加了 5 天的值。

示例 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的新列包含日期列中减去 5 天的值。

示例 3:使用 INTNX 查找该月的第一天

我们可以使用INTNX函数创建一个名为firstmonth的新列,其中包含日期列中每个日期的该月的第一天:

 /*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; 

请注意,名为firstmonth的新列包含日期列中每个日期的该月的第一天。

示例 4:使用 INTNX 查找一年中的第一天

我们还可以使用INTNX函数创建一个名为firstyear的新列,其中包含日期列中每个日期的一年中的第一天:

 /*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; 

请注意,名为firstyear的新列包含日期列中每个日期的一年中的第一天。

注意:您可以在此处找到 SAS INTNX函数的完整文档。

其他资源

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

如何将日期时间转换为SAS中的日期
如何在 SAS 中将数值变量转换为日期
SAS中如何计算两个日期之间的差异

添加评论

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