SAS中文论坛

标题: 初学者,请教一个data程序方面的问题。 [打印本页]

作者: shiyiming    时间: 2011-4-28 13:44
标题: 初学者,请教一个data程序方面的问题。
我是一个初学者,请教一个简单的问题。

有以下数据
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?




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2