SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

对数据行做标记

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-3-24 14:03:02 | 只看该作者

对数据行做标记

有数据集temp,其中有两个变量,一个是编号No,另一个是日期day
No  day
1    20090319
1    20090325
1    20090402
1    20090518
2    20090508
2    20090622
2    20100105
2    20100130
日期已排序,现在要对每条数据做一个标记,按No这个变量来做,使数据集变为
No  day              x
1    20090319     1
1    20090325     2
1    20090402     3
1    20090518     4
2    20090508     1
2    20090622     2
2    20100105     3
2    20100130     4
做一个编号的排列,每个NO都从1开始往下排,应该如何编程?谢谢!
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
沙发
发表于 2010-3-24 14:32:11 | 只看该作者

Re: 对数据行做标记

data v;
set temp;
by no;
if first.no then x=0;
x+1;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-3-24 15:33:56 | 只看该作者

Re: 对数据行做标记

很简单的问题,恶搞一下 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
向ahuige大侠致敬的版本
[code:3smox74l]data temp;
        retain x 0;
        set temp;
        by no;
        x=(1-first&#46;no)*x+1;
run;[/code:3smox74l]
费力不讨好的版本
[code:3smox74l]data temp;
        x=0;
        do _n_=1 until(last&#46;no);
                set temp;
                by no;
                x+1;
                output;
        end;
run;[/code:3smox74l]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 15:51 , Processed in 0.198448 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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