SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1327|回复: 4
打印 上一主题 下一主题

请教--如何用简单的CODE实现以下目的

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2003-11-10 12:59:05 | 只看该作者

请教--如何用简单的CODE实现以下目的

data a;
  input id month cl;
cards;
1 1 100
1 2 100
1 3 110
1 4 110
1 5 110
1 6 110
2 1 80
2 2 80
2 3 80
2 4 80
2 5 80
2 6 80
3 1 300
3 2 400
3 3 350
3 4 500
3 5 500
3 6 600
3 7 600
3 8 600
;

有关数据如上,如果我希望计算对于每个ID, CL的变动次数(升高,降低),请问有什么好办法.比如,ID=1,#INCREASE=1, #DECREASE=0;ID=2,#INCREASE=0, #DECREASE=0;ID=3, #INCREASE=3, #DEACREASE=1

我现在的做法是建新的变量,如CL1 CL2 CL3...然后在比较,但感觉这个办法很苯,而且在MONTH不同时比较麻烦,请教高手有没有更好的办法?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2003-11-10 13:45:50 | 只看该作者
用lag() 和first.id。Hope this heps.

proc sort data=a out=_1;
        by id month;
run;

data _2(drop= month cl _dif);
        set _1;
        by id month;
        _dif =dif(cl);
        if first.id then do;
                _dif         =.;
                INCREASE =0;
                DECREASE =0;
                end;
        else do;
                if _dif lt 0 then INCREASE +1;
                else if _dif gt 0 then DECREASE +1;
        end;
        if last.id then output;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2003-11-10 13:52:42 | 只看该作者
发完帖子后发现从SAS拷贝过来的DATAT步中的语句层次没有了,阅读起来很不方便。即使我想用空格来保持层次也不行。

复杂的语句如果没有语句层次,阅读实属不易。

shiyiming先生能否增加这项功能?为盼!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2003-11-10 14:06:06 | 只看该作者
偶早发现这个问题了,但发现这是HTML的顽症,难以根除。
有没有高人帮小弟可以解决? <!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2003-11-10 14:29:43 | 只看该作者
谢了,高人啊.我以前用LAG()做过,不过老是有点问题,可能是当时是初始值设置的问题.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-5 18:56 , Processed in 0.355374 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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