gpt4 book ai didi

SAS PROC SQL 使用 FULL JOIN 连接两个表

转载 作者:行者123 更新时间:2023-12-04 23:20:44 29 4
gpt4 key购买 nike

假设我有两个数据集,

--Table 1--      --Table 2--
ID Amount ID Amount1 Code
A01 0.1 A01 0.3 x
A02 0.2 A02 0.2 y
A02 0.3 A03 0.4 g
A03 0.4 A03 0.5 u
A05 0.6 B01 0.1 k

我试图通过加入表 1 和表 2 来创建一个新的数据集(表 3)。
预期的最终结果应如下所示:
--Table 3--
ID Amount Amount1 Code
A01 0.1 . .
A01 . 0.3 x
A02 0.2 0.2 y
A02 0.3 . .
A03 0.4 0.4 g
A05 0.6 . .
B01 . 0.1 k

其中表将根据 ID 加入,同时比较数量和数量 1。
我尝试使用 PROC SQL FULL JOIN 但结果似乎有点奇怪。
谢谢你。

最佳答案

对于新手用户来说,唯一可能不明显的是必须对 ID 执行 coalesce()。

proc sql;
create table joined as
select coalesce(a.ID, b.ID) as ID, a.Amount, b.Amount1, b.Code
from Table1 a
full join Table2 b
on a.ID = b.ID;
quit;

无论如何,SAS 的方法是合并两个表。如果您对表进行了预排序或对 ID 进行了索引,这也会更有效:
data merged;
merge table1 table2;
by ID;
run;

关于SAS PROC SQL 使用 FULL JOIN 连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600121/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com