SAS中文论坛

标题: 对数据行做标记 [打印本页]

作者: shiyiming    时间: 2010-3-24 14:03
标题: 对数据行做标记
有数据集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开始往下排,应该如何编程?谢谢!
作者: Qiong    时间: 2010-3-24 14:32
标题: Re: 对数据行做标记
data v;
set temp;
by no;
if first.no then x=0;
x+1;
run;
作者: shiyiming    时间: 2010-3-24 15:33
标题: 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]




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