SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 554|回复: 2
打印 上一主题 下一主题

初学者,请教一个data程序方面的问题。

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-4-28 13:44:43 | 只看该作者

初学者,请教一个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写在每组的最后一个观察中,我想写在第一个观察中该如何修改程序,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-4-28 15:18:27 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-4-29 09:11:07 | 只看该作者

Re: 初学者,请教一个data程序方面的问题。

谢谢楼上,另外我请教个问题。
我运行了上面的程序顺便打印了_N_的内容,为何显示_N_的内容只有1 2 3?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 13:31 , Processed in 0.126402 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表