如何使用SAS将对值放入缺少的值中?

如何使用SAS将对值放入缺少的值中?,sas,missing-data,Sas,Missing Data,数据如下所示: 身份证A年B年 1 1279 1996 0 0 2 1279 2003 0 1 3 1447 1993 1 0 4 1447 2001 1 1 5 1487 1967 0 0 6 1487 2008 1 . 7 1487 2008 1 . 8 1487 2009 0 1 9 1678 1979 1 0 10 1678 2002 1 1 11 1690 1989

数据如下所示: 身份证A年B年 1 1279 1996 0 0 2 1279 2003 0 1 3 1447 1993 1 0 4 1447 2001 1 1 5 1487 1967 0 0 6 1487 2008 1 . 7 1487 2008 1 . 8 1487 2009 0 1 9 1678 1979 1 0 10 1678 2002 1 1 11 1690 1989 1 0 12 1690 1993 0 . 13 1690 1993 0 . 14 1690 1996 0 . 15 1690 1996 0 . 161690 1997 01

我创建了一个变量B。最早年份的ID的B值为0,最近年份的ID的B值为1。但是,所有其他ID都创建了第二个观察值,一个观察值的B值为1,另一个观察值的B值为0

因此,输出将如下所示: 身份证A年B年 1 1279 1996 0 0 2 1279 2003 0 1 3 1447 1993 1 0 4 1447 2001 1 1 5 1487 1967 0 0 6 1487 2008 1 1* 7 1487 2008 1 0* 8 1487 2009 0 1 9 1678 1979 1 0 10 1678 2002 1 1 11 1690 1989 1 0 12 1690 1993 0 1* 13 1690 1993 0 0* 14 1690 1996 0 1* 15 1690 1996 0 0* 161690 1997 01

B序列应该是0和1。我需要将1和0放入缺失的值中。
有人能帮我吗?提前谢谢

如果没有您的代码来创建上述内容,我们将无法完成很多工作

我假设您使用的是按值进行排序,然后按id进行排序。如果是这样,则该回路已测试并工作:

data newdata;
    set data;
    by id year;
    if first.id then
    do;
        count=0;
        B=0;
    end;
    if not first.id and not last.id then
    do;
        count+1;
        B=mod(count,2);
    end;
    if last.id then
    B=1;
run;

让我知道你进展如何。

我的代码是data newdata;设置数据;按身份证;如果First.ID,则B=0;否则,如果Last.ID,则B=1;跑接下来我被困在这里。我已经编辑了我的答案。只需确保首先按id对数据进行排序。这正是我需要做的。非常感谢你!!我真的很感激。