SAS中文论坛

标题: 请教一个SAS数据处理问题 [打印本页]

作者: shiyiming    时间: 2006-1-18 07:37
标题: 请教一个SAS数据处理问题
各位前辈:
我想实现这样一个算法,请问该如何编程?

一个数据集中包括Subj和Conc两个变量。
从第一个观测开始,如果某一个观测的Conc='0'且Subj与前一个观测的Subj相同且前一观测的Conc NE '0',那么这一观测的Conc='ND'。

例如数据集如下:
[b:8c216]subj[/b:8c216]  [b:8c216]conc[/b:8c216]

subj1 0
subj1 0
subj1 1
subj1 3
subj1 5
subj1 6
subj1 4
subj1 2
subj1 0
subj1 0
subj2 0


按照上面的算法,前两个观测的conc应该不变,而第9、10个观测的conc应该变成'ND',最后一个观测的conc也不变。

谢谢!
作者: shiyiming    时间: 2006-2-11 19:29
标题: 不才给一个答案
data test;
input subj$ conc$;
do i=1 to 11;
if (conc='0' and subj=lag(subj) and lag(conc)^='0')then conc='nd';
end;
drop i;
cards;
subj1 0
subj1 0
subj1 1
subj1 3
subj1 5
subj1 6
subj1 4
subj1 2
subj1 0
subj1 0
subj2 0
;
run;quit;




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2