数据如下:
ID Year 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 .
16 1690 1997 0 1
我创建了一个变量B.具有最早年份的ID对于B具有值0,具有最新年份的ID对于B具有值1.然而,所有其他ID获得第二个观察创建,一个对于B,观察值为1,而对于B,观察值为0。
所以输出结果如下:
ID Year 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*
16 1690 1997 0 1
B序列应为0和1.我需要将1和0放入缺失值。 谁能在这帮助我?提前致谢。
答案 0 :(得分:0)
如果没有您的代码来创建上述内容,我们就无法做很多事情。
我假设您正在使用这些值的值并按年份排序。如果是这样,这个循环经过测试并正常工作:
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;
让我知道你是怎么过的。