楼主: alex1122
1614 0

[学习分享] 将逻辑库下所有数据集合并为一个数据集 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

大专生

58%

还不是VIP/贵宾

-

威望
0
论坛币
364 个
通用积分
11.2150
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
7967 点
帖子
25
精华
0
在线时间
77 小时
注册时间
2011-8-4
最后登录
2023-11-25

楼主
alex1122 发表于 2020-3-9 14:24:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
很多工作要求数据每日更新,每日有一个新的数据集,数据结构一样,但内容发生了变化。因此,有必要每天合并一次,形成最新的完整库。

第一步:读取work逻辑库下所有数据集名称,生成名称集datanm

  1. proc contents data=work._all_ out=datanm(keep=memname) noprint;
  2. run;
  3. proc sort data=datanm nodup; by memname; run;
复制代码


参考:https://bbs.pinggu.org/jg/shuju_shujuziyuan_1033336_1.html

第二步:合并work逻辑库下的有所数据集,可以merge, 也可以set。
  1. data _null_;
  2.         set datanm;
  3.         call symputx('max',_n_);
  4.         call symputx('data'||strip(put(_n_,best.)),memname);
  5. run;

  6. %macro merge(out);
  7. %do i=1 %to &max;

  8. data &out;
  9.         merge %if %sysfunc(exist(&out,data)) %then &out; &&data&i;
  10.                 by cardid;
  11. run;

  12. %end;

  13. %mend;
  14. %merge(total);
复制代码



二维码

扫码加我 拉你入群

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

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


已有 1 人评分经验 收起 理由
eijuhz + 20 鼓励积极发帖讨论

总评分: 经验 + 20   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-17 16:48