全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1385 2
2016-05-14
程序如下: 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这两个索引进行添加数据吗?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-5-14 21:44:39
hash对象中的add()所添加的变量是将PDV中的变量写入hash表中,所以在这若没有subjcnt.replace()应该也可以啊,为什么行不通呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-15 09:25:42
如果把红色部分改为subjcnt.add()为什么也不行呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群