全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3767 4
2016-07-25
data work.inventory;
   input Product_ID $ Instock Price;
   datalines;
   P001R 12 125.00
   P003T 34 40.00
   P301M 23 500.00
   PC02M 12 100.00
   ;
data work.inventory2;
  input Product_ID $ Outstock;
  datalines;
  P001R 12
  P001R 30
  P001R 25
  P003T 34
  P301M 23
  PD02M 50
  ;
为两个数据集,现用inventory2修改inventory
data work.inventory;
  modify work.inventory
         work.inventory2;
  by Product_Id;
  instock = instock + Outstock;
run;
但inventory2中的PD02M和50如何添加到最终的inventory中?


二维码

扫码加我 拉你入群

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

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

全部回复
2016-7-25 17:03:02
用update应该可以吧??

data inventory;
  update work.inventory
         work.inventory2;
  by Product_Id;
  if nmiss(instock, outstock)=0 then instock = instock + Outstock;
  else if instock=. then instock=outstock;
run;
二维码

扫码加我 拉你入群

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

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

2016-7-25 19:34:15
kylixcool 发表于 2016-7-25 16:35
data work.inventory;
   input Product_ID $ Instock Price;
   datalines;
能不能直接在modify中实现?
二维码

扫码加我 拉你入群

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

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

2016-7-25 22:27:50
已实现,方法如下:

data work.inventory;
  modify work.inventory
         work.inventory2;
  by Product_ID;
  select (_iorc_);
      when (%sysrc(_sok)) do;
         INSTOCK=instock+Outstock;
         replace;
      end;
      when (%sysrc(_DSENMR)) do;
         INSTOCK=Outstock;
         output;
      end;
  end;
run;

仔细研究了一下帮助文件。
二维码

扫码加我 拉你入群

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

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

2016-8-4 16:10:42
data inventory;
    modify inventory inventory2;
    by product_id;
    INSTOCK=instock+Outstock;
    if _iroc_ = 0 then replace;
    else do;
    INSTOCK=Outstock;
    _error_=0;
    output;
end;
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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