程序如下: data drugevent;  declare hash subjcnt(ordered:"Y");
  subjcnt.definekey("subject");
  subjcnt.definedata("counter");
  subjcnt.definedone();
  declare hash ae(ordered:"Y");
  ae.definekey("subject","counter");
  ae.definedata("subject","drug","medstdt","counter");
  ae.definedone();
  do until (eof);
  set advrpt.conmed end=eof;
  if subjcnt.find()  then  counter=1;
  else counter+1;
  
rc=subjcnt.replace();
  rc=ae.add();
  end;
  do until (eof1);
   set advrpt.ae end=eof1;
   counter=1;
   rc=ae.find();
   do while (rc=0);
     if (0 le AESTDT-medstdt le 5) then output drugevent;
          counter+1;
          rc=ae.find();
        end;
end;
run;
为什么要加上
rc=subjcnt.replace();(如程序中标红色的显示), rc=ae.add();不是可以直接根据subject和counter这两个索引进行添加数据吗?