如何在SAS中根据财政年度获取周值?

如何在SAS中根据财政年度获取周值?,sas,Sas,我有以下数据集,我需要根据财政年度(例如2013年4月至2014年3月)查找给定日期的周数。例如,01AprXXX应为一年中的第0周或第1周,随后的下一年3月最后一周应为52/53。我已经尝试了一种方法来找出相同的问题(下面也有代码) 我只是想知道在SAS中是否有更好的方法在SAS中实现这一点 。提前谢谢。请让我知道,如果这个问题是多余的,在这种情况下,我会删除它在最早的时候,虽然我搜索的概念,但没有找到任何东西 我也为我的英语道歉,它在语法上可能不正确。但我希望我能表达我的观点 数据 data

我有以下数据集,我需要根据财政年度(例如2013年4月至2014年3月)查找给定日期的周数。例如,01AprXXX应为一年中的第0周或第1周,随后的下一年3月最后一周应为52/53。我已经尝试了一种方法来找出相同的问题(下面也有代码)

我只是想知道在SAS中是否有更好的方法在SAS中实现这一点

。提前谢谢。请让我知道,如果这个问题是多余的,在这种情况下,我会删除它在最早的时候,虽然我搜索的概念,但没有找到任何东西

我也为我的英语道歉,它在语法上可能不正确。但我希望我能表达我的观点

数据

data dsn;
format date date9.;
input date date9.;
cards;
01Nov2015
08Sep2013
06Feb2011
09Mar2004
31Mar2009
01Apr2007
;

run;
代码

data dsn2;
set dsn;
week_normal = week(date);
dat2 = input(compress("01Apr"||year(date)),date9.);
week_temp = week(dat2);
format dat2 date9.;

x1 = month(input(compress('01Jan'||(year(date)+1)),date9.)) ;***lower cutoff;
x2 = month(input(compress("31mar"||year(date)),date9.)); ***upper cutoff;
x3 = week(input(compress("31dec"||(year(date)-1)),date9.)); ***final week value for the previous year;

if  month(dat2) <= month(date) <= month(input(compress("31dec"||year(date)),date9.)) then week_f = week(date) - week_temp;

else if x2 >= month(date) >= x1 then week_f = week_normal + x3 - week(input(compress("31mar"||(year(date)+1)),date9.)) ; 
run;
数据dsn2;
设置dsn;
周正常=周(日期);
dat2=输入(压缩(“2014年4月1日(日期)),日期9.);
周温度=周(dat2);
格式dat2 date9。;
x1=月份(输入(压缩('01一月'| | |(年(日期)+1)),日期9.)***下截止;
x2=月份(输入(压缩(“3月31日”|年(日期)),日期9.)***上截止线;
x3=周(输入(压缩(“12月31日”)(年(日期)-1),日期9.)***上一年的最后一周值;
如果月(日期2)=x1,则周(日期f=正常周+x3-周(输入(压缩(“3月31日”)(年(日期)+1)),日期9.);
跑
结果


INTCK
INTNX
是您在这里的最佳选择。您可以像我在下面所做的那样使用它们,也可以使用高级功能来定义您自己的间隔类型(会计年度);这在文档中有详细描述

data dsn2;
set dsn;
week_normal = week(date);
dat2 = intnx('month12.4',date,0);  *12 month periods, starting at month 4 (so 01APR), go to the start of the current one;
week_F = intck('week',dat2,date);  *Can adjust what day this starts on by adding numbers to week, so 'week.1' etc. shifts the start of week day by one;
format dat2 date9.;
run;

谢谢,我很想知道,如何更改此间隔类型?请你给我指一下文档(如果这对你来说不是什么大问题的话)。我很想了解它的概念Thanks@KabirPradeep从开始,然后一旦你明白了这一点,看看。