【发布时间】:2017-05-29 14:19:41
【问题描述】:
我有一个数据集,每周一行,持续 2 年(所以 104 行)。我有一个标志列,每周为 1 或 0。我想创建一个具有以下逻辑的新列:
如果该周的 flag=1,则该周为 1,接下来的 3 周为 flag_new。
我目前可行的方法是:
if flag=1 or lag(flag)=1 or lag2(flag)=1 or lag3(flag)=1 then flag_new=1;
虽然这可行,但如果我希望 flag_new 在接下来的 20 或 30 周而不是 3 周内为 1,这将变得非常乏味。
我希望有一种更简单的方法来做到这一点(也许是循环?),但我不太熟悉它。
非常感谢任何帮助。
【问题讨论】: