如何使用SAS将对值放入缺少的值中?
数据如下所示: 身份证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放入缺失的值中。如何使用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
有人能帮我吗?提前谢谢 如果没有您的代码来创建上述内容,我们将无法完成很多工作 我假设您使用的是按值进行排序,然后按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对数据进行排序。这正是我需要做的。非常感谢你!!我真的很感激。