SAS中文论坛
标题:
急!求一道sas编程题程序!
[打印本页]
作者:
shiyiming
时间:
2005-12-19 14:57
标题:
急!求一道sas编程题程序!
[color=red:0da8e]下面这道题我试了好些时间,总是得不出应有的结果,请高手帮帮忙呀!
编制程序:
六个变量id d1-d5,数据节选如下:
1 2 7 23 100 1000
2 3 33 54 56 1000
3 . 4 6 44 100
要求:如果相邻数据之差小于等于7,则置为缺失,数据结果应如下:
1 . . 23 100 1000
2 3 33 . . 1000
3 . . . 44 100
注:最前面一列的1 2 3是id号,不用处理的数据。
请各位多多指教呀[/color:0da8e]
作者:
shiyiming
时间:
2005-12-19 17:23
标题:
try this!
data a;
input id d1-d5;
cards;
1 2 7 23 100 1000
2 3 33 54 56 1000
3 . 4 6 44 100
;
run;
data b;
set a;
array d(5) d1-d5;
do i=lbound(d) to (hbound(d)-1);
x=abs(d(i)-d(i+1));
if x<=7 and x^=. then do;
d(i)=.; d(i+1)=.; end;
end;
run;
enjoy it! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者:
shiyiming
时间:
2005-12-19 17:46
标题:
删了.
楼上的解法,无法解决连续三个相差都小于7的情况.
作者:
shiyiming
时间:
2005-12-19 18:35
标题:
谢谢bigbang!
谢谢bigbang的大力支持!
只是老师给我们这题的时候还没跟我们讲过bound()函数,还有没有别的什么好的方法?
再次感谢!
<!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
作者:
shiyiming
时间:
2005-12-19 18:37
标题:
to ahuige
您有何高见?可否指点迷津?谢谢!
作者:
shiyiming
时间:
2005-12-19 19:04
标题:
to ahuige
呵呵,看到您的高见了,不错。谢谢! <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
作者:
shiyiming
时间:
2005-12-20 14:05
标题:
re:
ahuige, you are right. I made some corrections.
data a;
input id d1-d5;
cards;
1 2 7 23 100 1000
2 3 33 54 56 1000
3 . 4 6 44 100
4 1 2 3 44 121
;
run;
data b;
set a;
array d(*) d1-d5;
array s(*) s1-s4;
do i=1 to dim(s);
s(i)=abs(d(i)-d(i+1));
end;
do i=1 to dim(s);
if s(i)<=7 and s(i)^=. then do;
d(i)=.; d(i+1)=.; end;
end;
run;
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2