如何使用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 中执行其他常见任务: