【发布时间】:2022-08-17 21:11:32
【问题描述】:
假设有以下数据集:
ID Date_Start Date_End Flag1 Flag2 001 13JAN2015 01JUN2018 1 0 001 02JUN2018 02JUL2018 1 0 001 03JUL2018 31DEC2020 1 0 002 01JAN2015 31DEC2020 1 0 003 01JAN2017 31DEC2019 1 0 003 01JAN2020 31DEC2021 1 0 004 01JAN2011 31DEC2021 1 2 ..... ......... ......... ..... ......期望的输出:
ID Date_Start Date_End Flag1 Flag2 001 13JAN2015 01JUN2018 1 0 001 02JUN2018 02JUL2018 1 0 001 03JUL2018 31DEC2020 1 10 002 01JAN2015 31DEC2020 1 10 003 01JAN2017 31DEC2019 1 0 003 01JAN2020 31DEC2021 1 10 004 01JAN2011 31DEC2021 1 2……………………………………………………………………………………………………………………………………
换句话说:如果 Flag2 == 0 和 Flag1 == 1 将 Flag2 列中的标志替换为每个 ID 的 10,如下所示:
- 对于复制的 ID,采用最后一个时间间隔;
- 对于唯一 ID,请使用您拥有的时间间隔。
我是 SAS 编程的新手。我知道我要做的是:
data my data; set input; if Flag2 = 0 AND Flag1 = 1 then Flag2 = 10 run;但我不知道如何管理周期和重复的 ID。任何人都可以帮助我吗?
标签: sas