全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5895 4
2014-04-23
悬赏 50 个论坛币 已解决
原料:有这么一堆表,表间的字段有重复的,有总结好的sas数据集,见附件,
table_name就是来源表, unique_name就是要生成的表名,两者是多对一的关系,多个原始表生成一个目标表。

阶段目标:
将表中的共有字段都提取出来,分别组成新的表,即:按照列提取,提取表中相同的列,组成新的表,生成的目标表会有很多。
例子:
从a表里有aa, b表里也有aa,两个aa纵向合并形成一个新的表aa(不去除重复);
从a表里有cc, c表里有cc,b表里有cc, 三个cc纵向合并形成一个新的表cc(不去除重复)……;


可以用下列的语句单个的实现:
proc sql;
create table table3 as
select name from birth1
outer union
select name  from  birth2 ;quit;


最终目标:
批量实现,附件中可以看出非常有规律,希望可以通过宏实现,谢谢大家。




question.xlsx

大小:59.77 KB

 马上下载

总结的表单

最佳答案

intheangel 查看完整内容

没有调试,有问题再联系
二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-23 16:11:54
没有调试,有问题再联系
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-23 17:37:03
我看了附件觉得很乱啊,因为数据你自己才有,我看那个表根本就看不明白。
思路:
1、使用dictionary.column这个表,查看不同数据集里面的变量名
2、根据变量名排序,这样就可以看到哪些变量名需要从哪些表格里面批量提取
3、然后结合宏的应用批量生成表格

如果你不需要去重的话,而且相同变量名的数据格式都一样,不会出现数据截断问题的话,可以考虑使用
proc append
二维码

扫码加我 拉你入群

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

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

2014-4-23 20:36:35
6皮皮9 发表于 2014-4-23 17:37
我看了附件觉得很乱啊,因为数据你自己才有,我看那个表根本就看不明白。
思路:
1、使用dictionary.colu ...
就3列,table_name abc he unique_name

abc相同的说明对应的table_name含有相同的变量 变量的名字都为unique_name,比如:

table_name                          abc          unique_name
BIRTH_DAORUBIAO_2007          1               ABCODE_VARCHAR2
BIRTH_OUT_HOSPITAL2009          1       

意思是从birth_baorubiao_2007和birth_out_hospital2009两张表里面提取 abcode这个变量,组成新的表,新表的表名为abcode_varchar2
二维码

扫码加我 拉你入群

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

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

2014-4-25 23:15:08
复制代码
有问题请反馈。。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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