作者prevention (...)
看板Statistics
标题[程式] SAS 动态取观测值
时间Sun Apr 3 21:51:01 2011
[软体程式类别]:SAS
[程式问题]:资料处理
[软体熟悉度]:新手
[问题叙述]:
有一个问题想请教
比方说从1-10这10个数里面,从第2个开始读取观测读到5个观测为止:
data tmp;
input a @@;
datalines;
1 2 3 4 5 6 7 8 9 10
;
run;
data get;
set tmp(firstobs=2 obs=5);
run;
proc means data=get;
var a;
output out=result n=totalnumber var=variance;
run;
proc print data=result(keep=totalnumber variance); run;
输出结果:
SAS 系统 2011年04月03日 星期日 下午08时43分49秒 52
Obs totalnumber variance
1 4 1.66667
这很正常
可是如果要取i到i+5的观测
data get;
i=5; /*(比如我给i先赋值了)*/
set tmp(firstobs=i obs=i+5);
drop i;
run;
此时无法输出结果
提示i中无效的数字转换
如果想动态的取一部分观测怎麽办呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.86.133.37
1F:→ MmmRrrrX:%let i=5; data get; 04/03 23:04
2F:→ MmmRrrrX:set tmp(firstobs=&i obs=%eval(&i+5)); run; 04/03 23:05
3F:→ prevention:谢谢M大解惑! 04/06 17:42