楼主: 乐天天12300
1224 4

新手请教,如何使用modify实现下面数据集的合并 [推广有奖]

  • 0关注
  • 3粉丝

讲师

91%

还不是VIP/贵宾

-

威望
0
论坛币
4798 个
通用积分
359.7619
学术水平
60 点
热心指数
70 点
信用等级
42 点
经验
9952 点
帖子
242
精华
0
在线时间
985 小时
注册时间
2016-11-28
最后登录
2024-4-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. data a;
  2. input x y @@;
  3. cards;
  4. 101 1 102 3
  5. 103 30 104 5
  6. ;
  7. data b;
  8. input x y @@;
  9. cards;
  10. 101 10 102 30
  11. 103 5 105 50
  12. ;
  13. run;
复制代码
请教,上述两个数据集如何使用modify来得到
x      y
101  10
102  30
103  5




二维码

扫码加我 拉你入群

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

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

关键词:modify 如何使用 ODI Mod DIF modify

沙发
zwnSAS121 发表于 2017-1-6 14:08:44 |只看作者 |坛友微信交流群
  1. data stock;
  2. input partno $ price @@;
  3. datalines;
  4. k89r 5 m4j7 5 lk43 5 mn21 5
  5. bc85 5 ncf3 24.5 kj66 5 uyn7 5
  6. jd03 5 bv1e 34.5 kk 49.33
  7. ;
  8. /*建立简单索引*/
  9. proc datasets library=work;
  10. modify stock;
  11. index create partno;
  12. contents data=stock;
  13. run;

  14. proc sort data=stock force;by partno;run;
  15. /*对于已经建立简单索引的数据集,需要用到force强行排序,这里不用排序*/

  16. data newp2;/*更新的数据*/
  17. input partno $ newp2;
  18. cards;
  19. k89r 10
  20. m4j7 20
  21. lk43 30
  22. www  40
  23. ;
  24. data stock;
  25. set newp2;
  26. modify stock key=partno;
  27. if _iorc_=0 then do;
  28. price=newp2;
  29. replace;
  30. end;
  31. else do;
  32. _iorc_=0;_error_=0;
  33. output;
  34. end;
  35. run;
复制代码

使用道具

藤椅
zwnSAS121 发表于 2017-1-6 14:11:07 |只看作者 |坛友微信交流群
modify一般用来小表更新大表数据集。

使用道具

板凳
zwnSAS121 发表于 2017-1-6 18:46:21 |只看作者 |坛友微信交流群
  1. data a;/*大表*/
  2. input x y @@;
  3. cards;
  4. 101 1 102 3
  5. 103 30 104 5
  6. ;
  7. data b;/*小表*/
  8. input x y @@;
  9. cards;
  10. 101 10 102 30
  11. 103 5 105 50
  12. ;
  13. run;
  14. proc sort data=a;by x;run;
  15. proc sort data=b;by x;run;

  16. /*小表覆盖(更新)大表*/
  17. data a;
  18. modify a b;
  19. by x;
  20. if _iorc_=0 then replace;
  21. else do;
  22. _error_=0;
  23. _iorc_=0;
  24. output;
  25. end;
  26. run;
复制代码

使用道具

zwnSAS121 发表于 2017-1-6 18:46
这个程序运行得出的不是我想要的结果,再说,modify不需要排序。by语句的变量只是作标示变量

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 22:27