SAS中文论坛

标题: 如何取出一列的第一条和最后一条记录,存放在变量中? [打印本页]

作者: shiyiming    时间: 2011-2-11 22:29
标题: 如何取出一列的第一条和最后一条记录,存放在变量中?
DATASET 可以简化如下,
ID         startmonth
1        198011
1        198012
1        198101
1        198102
1        198103
2        201101
2        201102
2        201103
2        201104

请问如何获得当ID=1 或者 2 时, STARTMONTH列的第一个条和最后一条记录集: 也就是当ID=1时 , STARTMONTH 的第一条记录(198011) 和最后一条记录(198103)都可以取出放在变量中;对ID=2也是进行同样的操作。主要是想根据ID 分类,来计算每组的月份差 ,因为我的时间有不连续情况存在。
多谢 <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
作者: shiyiming    时间: 2011-2-11 23:41
标题: Re: 如何取出一列的第一条和最后一条记录,存放在变量中?
[code:3fi9svcl]
data a;
        input id $ startmonth;
datalines;
1 198011
1 198012
1 198101
1 198102
1 198103
2 201101
2 201102
2 201103
2 201104
;
run;
proc sort data=a;
        by id;
run;
data b;
        set a;
        by id;
        if first&#46;id or last&#46;id then output;
run;
[/code:3fi9svcl]
作者: shiyiming    时间: 2011-2-12 00:19
标题: Re: 如何取出一列的第一条和最后一条记录,存放在变量中?
多谢, 好像STARTMONTH的第一个条记录和最后一条记录都没有显示呀?
作者: shiyiming    时间: 2011-2-12 01:04
标题: Re: 如何取出一列的第一条和最后一条记录,存放在变量中?
@happy6886
有啊
[code:3fickur1]
Obs    id    startmonth
1     1       198011
2     1       198103
3     2       201101
4     2       201104
[/code:3fickur1]
作者: Qiong    时间: 2011-2-14 11:41
标题: Re: 如何取出一列的第一条和最后一条记录,存放在变量中?
为什么不用sql 来by id算max(startmonth)-min(startmonth)?




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