SAS中文论坛
标题:
SAS宏在临床试验中应用-对1个变量的LOCF结转
[打印本页]
作者:
shiyiming
时间:
2005-8-24 14:50
标题:
SAS宏在临床试验中应用-对1个变量的LOCF结转
[code:d36a7]%macro locf(data=data, /*原始数据集*/
out=out, /*输出填补缺失值后的数据集*/
var=var /*处理变量*/
);
data &out(drop=var1);
set &data(keep=&var);
var1=lag(&var);
if &var=. then &var=var1 ;
run;
%mend;
data aa;
input id$ x1 x2;
datalines;
a1 11 12
a2 . 22
a3 31 .
a4 41 .
a5 . 52
;
run;
%locf(data=aa,out=out,var=x1);[/code:d36a7]
作者:
shiyiming
时间:
2005-8-29 22:20
标题:
辛苦啦
我以前怎么没发现这个LAG阿,多谢阿!
作者:
shiyiming
时间:
2005-8-30 08:10
标题:
to xystat
那你以前是怎么做的?愿意把代码贴上,和大家共享讨论否?
作者:
shiyiming
时间:
2005-9-14 15:22
标题:
还可以结合CALL SYMPUT()线程和SYMGET()函数使用
%macro locf (data,out,var);
data &out;
set &data;
call symput ("VAR",&var);
if &var=. then &var=symget("VAR");
run;
%mend;
作者:
shiyiming
时间:
2005-10-1 09:06
标题:
thank you!
首先非常感谢collen提供的locf宏,但是我发现用于本例的x2时,只能得到一个值,还有缺失值的啊,怎么办呢?
作者:
shiyiming
时间:
2005-10-9 14:58
标题:
修改完chenxin8316的宏试试
%macro locf (data,out,var);
data &out;
set &data;
if &var^=. then call symput ("VAR",&var);
if &var=. then &var=symget("VAR");
run;
%mend;
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2