全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3772 2
2011-03-25
要处理一组国际贸易数据,从中提取出高科技产品的数据,因此要从一大类中剪掉几部分小类。例如,714大类产品可能为高科技产品,但是其中71425小类产品不是高科技产品,因此要用714大类的数据减去71425小类的数据。这里有两张表,每张表有四个变量,即Reporter(出口国), Partner(进口国), Year(统计年份), 和Commodity(商品的贸易流量)。
第一张表a为大类商品,Commodity为Aerospace1;第二张表b为小类商品,Commodity为Aerospace2;
如果直接用a.Aerospace1-b.Aerospace2 ,则有aerospace1而无Aerospace2的值在新表中都会编程缺失值(可见如下程序)。


create table g7.Aerospace as
SELECT distinct a.Reporter, a.Partner, a.Aerospace1-b.Aerospace2 as aerospace, a.Year
FROM g7.aerospace1 as a FULL JOIN g7.aerospace2 as b
on a.Reporter = b.Reporter and a.Partner = b.Partner and a.Year = b.Year;
quit;

现在想实现的是,若aerospace2存在,则用a.Aerospace1-b.Aerospace2得到新表中的aerospace;若aerospace2不存在,则直接为新表中aerospace取a.aerospace1的值。

之前发帖提了一个问题得到了论坛上达人们的完美解决,非常感谢哈!
希望有大侠能帮忙指导一下这个问题,谢啦!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-3-25 16:40:14
还是两个方法:
1) 把 a.Aerospace1-b.Aerospace2 改为 sum(a.Aerospace1, -b.Aerospace2)

2) 用case when b.Aerospace2=. then a.Aerospace1-b.Aerospace2 else a.Aerospace1 end
二维码

扫码加我 拉你入群

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

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

2011-3-25 21:06:23
2# myc_sas 呵呵,谢啦,这位大侠SAS怎么学的呀?能推荐本教材或者别的学习资料不?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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