如果我有两个日期,例如2005年3月22日到2006年3月01日,我想根据这个时间间隔创建季节间隔(春、夏、秋、冬),如何在一个数据步骤中完成这一点?
季节定义为:春季:3月至5月夏季:6月至8月秋季:9月至11月冬季:12月至2月
我需要计算他们在每个赛季中花费了多长时间。
发布于 2018-09-08 01:05:00
您需要先将其转换为月份,然后再转换为季节。这个问题是最近提出的,所以通过搜索可以相对容易地找到它(我猜有些课程正在使用这个作为家庭作业?)。
data want;
set have;
*create month;
month_date = month(date);
*assign to season;
if month_date in (6, 7, 8) then season = 'Summer';
else if month_date in (9, 10, 11) then season ='Fall';
....etc;
run;您也可以使用一种格式,但由于您刚刚开始,这可能会更容易。
其他用户的问题看起来真的非常相似:https://communities.sas.com/t5/SAS-Enterprise-Guide/proc-glm/m-p/492142
编辑:使用INTCK()计算间隔数。然后使用INTNX跨间隔递增,并计算您的天数。如何对齐日期可以通过INTNX()函数的第一个参数来控制。您可以查看文档以了解确切的细节。
data want;
start_date="22Mar2005"d;
end_date="01Mar2006"d;
num_intervals=intck('quarter', start_date, end_date, 'C') ;
do interval=0 to num_intervals;
season_start=intnx('Month3.3', start_date, interval, 'b');
season_end=intnx('Month3.3', start_date, interval, 'e');
Number_Days=season_end - season_start + 1;
output;
end;
format start_date end_date season: yymmddd10.;
run;https://stackoverflow.com/questions/52226783
复制相似问题