【发布时间】:2019-07-17 10:18:03
【问题描述】:
我有以下格式的数据集。前 5 个变量已经存在。我需要创建“NEED_TO”。
这意味着在列 MTH_SATTL 上带有“1”的行之后,当 START 列上的日期比 DATA 列上的日期更早时,然后填写 1 直到下一个 GROUP nad GR_ROZL。
我尝试使用 RETAIN 语句,但我认为我的语法有问题
Data Start Group GR_ROZL MTH_SATTL Need_to
01OCT2019 . G11 2 0 0
01NOV2019 . G11 2 0 0
01DEC2019 . G11 2 0 0
01JAN2020 01JAN2020 G11 2 0 0
01FEB2020 01JAN2020 G11 2 1 1
01MAR2020 01JAN2020 G11 2 0 1
01APR2020 01JAN2020 G11 2 0 1
01OCT2019 . G11 3 0 0
01NOV2019 . G11 3 0 0
01DEC2019 . G11 3 0 0
01JAN2020 01JAN2020 G11 3 0 0
01FEB2020 01JAN2020 G11 3 0 0
01MAR2020 01JAN2020 G11 3 1 1
01APR2020 01JAN2020 G11 3 0 1
01OCT2019 . G12W 2 0 0
01NOV2019 . G12W 2 0 0
01DEC2019 . G12W 2 0 0
01JAN2020 01JAN2020 G12W 2 0 0
01FEB2020 01JAN2020 G12W 2 1 1
01MAR2020 01JAN2020 G12W 2 0 1
01APR2020 01JAN2020 G12W 2 0 1
【问题讨论】:
-
您指的是代码中名为
start_podwyzka的列,但您的示例数据中有一个名为start的列。请提供此额外列或更正您的代码。 -
另外,您的示例数据中有
group,但代码中有GRUPA_TARYFOWA。 -
我删除了我的代码。完全错了。
-
请包括您尝试过的内容,即使它是错误的。本网站的目标是帮助您修复它,而不是为您编写它..
-
我准备代码:数据需要;设置有;如果开始 ne '.'然后做;通过 GROUP GR_ROZL NOTSORTED;保留 NEED_TO 0;如果 FIRST.GROUP 那么 NEET_TO = 0; IF not NEED_TO AND START ge DATA THEN NEED_TO = 1;结尾;否则 NEED_TO = MTH_SATTL;运行;