mingfeng07 发表于 2014-11-25 00:57
您这么晚还帮助我解决问题,非常感动也非常感谢!我受益匪浅!不过可以用lead和lag函数是不是更简洁一些,我写的程序如下:
data a;
input obs_time datetime16. intensity;
format obs_time datetime16.;
cards;
06OCT14:07:58:00 0.43
06OCT14:07:58:01 0.45
06OCT14:07:58:02 0.49
06OCT14:07:58:03 0.51
06OCT14:07:58:04 0.53
06OCT14:07:58:05 0.53
06OCT14:07:58:06 0.54
06OCT14:07:58:07 0.34
06OCT14:07:58:08 0.54
;
run;
proc expand data=a out=b method=none;
convert intensity = lead1 / transformout = (lead 1);
convert intensity = lag1 / transformout = (lag 1);
run;
data c;
set b;
if (intensity-lag1)>0 and (intensity-lead1)>0 then flag="极大值点";
if (intensity-lag1)<0 and (intensity-lead1)<0 then flag="极小值点";
if flag^='';
run;
proc sort data=c out=d;
by obs_time;
run;
data e;
set d;
slp=dif(intensity)/dif(obs_time);
run;
欢迎提宝贵建议!