Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 标记一个月内的整周,包括其他月份的剩余天数_Date_Sas_Week Number - Fatal编程技术网

Date 标记一个月内的整周,包括其他月份的剩余天数

Date 标记一个月内的整周,包括其他月份的剩余天数,date,sas,week-number,Date,Sas,Week Number,我有一个包含每日数据的数据集。我需要创建一个变量,它将每个月的周数(1到(4或5)) 我通过以下公式得出了这一结论: WK_NUM = intck('week',intnx('month',DATE,0),DATE)+1; 它工作正常,但通常一个月的第一周和最后一周都不是完整的几周,因此该行只带来部分周。我需要改进它,将上个月或下个月的剩余天数增加到每周7天 有什么想法吗?希望这能产生预期的结果: /* initial data set with dates */ data a; for

我有一个包含每日数据的数据集。我需要创建一个变量,它将每个月的周数(1到(4或5))

我通过以下公式得出了这一结论:

 WK_NUM = intck('week',intnx('month',DATE,0),DATE)+1;
它工作正常,但通常一个月的第一周和最后一周都不是完整的几周,因此该行只带来部分周。我需要改进它,将上个月或下个月的剩余天数增加到每周7天


有什么想法吗?

希望这能产生预期的结果:

/* initial data set with dates */
data a;
  format date date9.;
  do date="15apr2017"d to "15jun2017"d;
   output;
  end;
 run;

/* adding week number */
data a;
  set a;
  wk_num = week(date,'u');
run;

/* selecting May and modifying wk_num */
proc sql noprint;
  CREATE TABLE b AS
  SELECT date
    ,wk_num - ((SELECT min(wk_num) FROM a WHERE date="01may2017"d)-1)
  FROM a
  WHERE wk_num between (SELECT min(wk_num) FROM a WHERE date="01may2017"d) AND (SELECT max(wk_num) FROM a WHERE date="31may2017"d)
  ;
quit;
周功能选项:

u(默认值):指定一年中的周数。星期天被认为是一周的第一天。周值的数字表示为0-53范围内的十进制数。第53周没有特殊意义。本周('2006年12月31日,'u')的价值为53

v:指定其值表示为1-53范围内十进制数的周数。星期一被认为是一周的第一天,一年中的第一周是一周,包括一年中的1月4日和第一个星期四。如果1月的第一个星期一是第2、第3或第4天,则前几天是前一年最后一周的一部分


w:指定一年中的周数。星期一被认为是一周的第一天。周值的数字表示为0-53范围内的十进制数。第53周没有特殊意义。week('2006年12月31日,'w')的值为53。

能否显示您开始的内容以及您需要的输出内容?我的数据库涵盖1月15日到今天。让我们以2017年5月为例。每个日期都有多行数据,字段日期包含完整日期(5月1日至5月31日)。我想创建一个名为WK_NUM的变量,它将这些天按周分组(从第1天到第5天)。我目前的配方奶粉可以做到这一点,但我的第一周是5月1日至5月06日(6天),最后一周是5月28日至5月31日(4天)。在这些情况下,我希望ordem从上个月/下个月获得更多的天数,以填满一周7天(从周日到周六),如4月30日至5月06日(第一周)和5月28日至6月03日(上周)。请将该文本添加到问题中。或者更好的是,添加到问题中,以显示您拥有的数据的一些示例记录,并显示您希望从该示例中获得的输出数据。@AYJK如前所述,请将此添加到问题中。还包括当你展望下个月时你是如何处理的?那么6月1日将是第5周?您是否尝试过WEEK函数/格式的变体?谢谢@zuluk,它就像我想要的那样工作!干杯