SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 664|回复: 1
打印 上一主题 下一主题

请教一个SAS数据处理问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-1-18 07:37:16 | 只看该作者

请教一个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也不变。

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-2-11 19:29: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;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-9 14:13 , Processed in 0.071646 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表