SAS中文论坛
标题:
求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?
[打印本页]
作者:
shiyiming
时间:
2009-8-20 20:27
标题:
求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?
比如说有两列变量
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,又必须用,又找不到人问,没的办法,多谢 !!!!
作者:
shiyiming
时间:
2009-8-20 22:40
标题:
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]
作者:
shiyiming
时间:
2009-8-20 23:01
标题:
Re: 求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?
看了真是晕菜啊。。。
没学过sas的宏
准备学一下 再研究一下这段程序
非常感谢 !!!!!
作者:
shiyiming
时间:
2009-8-23 15:51
标题:
Re: 求教:如何求得某一变量为特定值时另一变量上下一定范围内的观测值?
继续请教,使用这段宏的话,我得到的结果是变量是对应往前数和往后数天数的观测,但是可不可以只形成一个变量,这个变量在b=1的上下(m,n)取到a变量的对应值呢 ?
万分感谢!!!!!!!!
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2