|
本帖最后由 silentzilch 于 2015-4-11 10:36 编辑
有一个非常具体的问题,想求教各位大神如何实现:
如图所示,现有三组实验(实验A,B,C),实验对象8个,实验回目6次(0,1,3,4,6),每个实验对象都有不同次数的回目缺失。
要求:补全整个实验,对于最后一次实验之后所缺失的值,全部用实验回目0的值补出。(例如实验A,实验对象1仅有实验0,实验1的值,则后面实验3,4,6缺失的值全部用实验0补出)
对于实验回目中间所缺失的值,全部用上一次实验的值补出。(例如实验A,实验对象3有实验0,3,6的值,则缺失的实验1的值用实验0的值来补全,缺失的实验4的值用实验3的值来补出)
data a;
attrib lab subject visit value coin label=" "
value format=5.3;
seed=4329;
do lab="实验A", "实验B", "实验C";
do subject=1 to 8;
do visit=0, 1, 3, 4, 6;
value=input(10*rannor(seed)+25, 5.3);
coin=rantbl(seed,0.5,0.5);
if NOT (subject in(2,6) and visit in(4.5, 6))
and NOT (subject in(7) and visit in(1,3,4.5)) then do;
if visit=0 or coin=1
then output;
end;
end;
end;
end;
drop seed coin;
run;
data b;
do lab="实验A", "实验B", "实验C";
do subject=1 to 8;
do visit=0, 1, 3, 4, 6;
output;
end;
end;
end;
run;
整个实验补全以后应有120个observation,我知道整个过程比较复杂,以上代码我已经简单补出120个观察值。如果您可以实现整个过程,不胜感激!
如果您可以提示一下核心思路和核心语句同样不胜感激!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|