有以下数据
id group
1 1
2 1
3 1
4 2
5 2
我想统计用data步实现对各个组成员个数的统计,并且把各组个数写入每个组的第一个观察中。
希望的结果是:
id group numofgroup
1 1 3
2 1
3 1
4 2 2
5 2
以下是我的程序:
data a;
input id group;
cards;
1 1
2 1
3 1
4 2
5 2
;
data b;
set a;
by group;
retain numOfgroup;/*统计组成员个数*/
if first.group then numOfgroup=0;
numOfgroup+1;
run;
这样导致numOfgroup写在每组的最后一个观察中,我想写在第一个观察中该如何修改程序,谢谢!作者: shiyiming 时间: 2011-4-28 15:18 标题: Re: 初学者,请教一个data程序方面的问题。 [code:tk7iic63]
data b;
numOfgroup=0;
do until(last.group);
set a nobs=aa;
by group;
numOfgroup+1;
end;
do until(last.group);
set a;
by group;
if not first.group then call missing(numOfgroup);
output;
end;
run;[/code:tk7iic63]作者: shiyiming 时间: 2011-4-29 09:11 标题: Re: 初学者,请教一个data程序方面的问题。 谢谢楼上,另外我请教个问题。
我运行了上面的程序顺便打印了_N_的内容,为何显示_N_的内容只有1 2 3?