Q/KDB 中的周数
Week Number in Q/KDB
我希望将 date/week 映射到一年中的周数。
我想过减去年初,然后除以 7 - 但是它可能排列不正确。
e.g.
2020.01.02 -> Week 1
2020.01.06 -> Week 2
我建议使用以下功能:
weekOfYear: {1+floor (x-`week$"d" xbar"m"$x)%7}
这个函数
- 查找 1 月 1 日之前或 1 月 1 日之前的第一个星期一。
{(`week$"d" xbar"m"$x)}2020.01.01
returns 2019.12.30
- 然后找出
x
和第一个星期一 之间的天数差异
- 将差值除以 7 并加 1,即 returns 您要查找的结果
例如
weekOfYear 2019.12.31 2020.01.01 2020.01.02 2020.01.05 2020.01.06 2020.01.07
returns
53 1 1 1 2 2
只是为了建立 Antons 的好答案,您还可以使用 div
函数而不是将其设置为 flooring,它看起来像
{1 + (x - `week $ `date $ 12 xbar `month $ x) div 7}
我希望将 date/week 映射到一年中的周数。
我想过减去年初,然后除以 7 - 但是它可能排列不正确。
e.g.
2020.01.02 -> Week 1
2020.01.06 -> Week 2
我建议使用以下功能:
weekOfYear: {1+floor (x-`week$"d" xbar"m"$x)%7}
这个函数
- 查找 1 月 1 日之前或 1 月 1 日之前的第一个星期一。
{(`week$"d" xbar"m"$x)}2020.01.01
returns2019.12.30
- 然后找出
x
和第一个星期一 之间的天数差异
- 将差值除以 7 并加 1,即 returns 您要查找的结果
例如
weekOfYear 2019.12.31 2020.01.01 2020.01.02 2020.01.05 2020.01.06 2020.01.07
returns
53 1 1 1 2 2
只是为了建立 Antons 的好答案,您还可以使用 div
函数而不是将其设置为 flooring,它看起来像
{1 + (x - `week $ `date $ 12 xbar `month $ x) div 7}