SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 685|回复: 3
打印 上一主题 下一主题

求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-8-20 20:27:36 | 只看该作者

求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?

比如说有两列变量
a b
2 0
1 0
2 0
5 1
7 0
9 0
6 0
7 0
4 1
6 0
.....
如何在找到b=1的时候取到a变量在b=1对应那个观测上面n个观测和下面m个观测的值?

多谢 !

不是很精通SAS,又必须用,又找不到人问,没的办法,多谢 !!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-8-20 22:40:51 | 只看该作者

Re: 求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?

[code:169uual6]data raw;
        input a b;
datalines;
2 0
1 0
2 0
5 1
7 0
9 0
6 0
7 0
4 1
6 0
;

%macro lag(inds,outds,m,n);
        options mprint nosymbolgen;
        data &outds;
                set &inds;
                id=_n_;
                %do i=&m %to 1 %by -1;
                        m&i=lag&i(a);
                %end;
        run;
        proc sort data=&outds;
                by descending id ;
        run;
        data &outds;
                set &outds;
                %do i=1 %to &n;
                        n&i=lag&i(a);
                %end;
        run;
        proc sort data=&outds out=&outds(drop=id where=(b=1));
                by id ;
        run;
%mend;

%lag(raw,temp,3,3)[/code:169uual6]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-8-20 23:01:28 | 只看该作者

Re: 求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?

看了真是晕菜啊。。。
没学过sas的宏
准备学一下 再研究一下这段程序
非常感谢 !!!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-8-23 15:51:56 | 只看该作者

Re: 求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?

继续请教,使用这段宏的话,我得到的结果是变量是对应往前数和往后数天数的观测,但是可不可以只形成一个变量,这个变量在b=1的上下(m,n)取到a变量的对应值呢 ?
万分感谢!!!!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 21:38 , Processed in 0.066517 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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