如何合并2个不同长度的数据集?
问题描述:
我想合并2个不同维度的数据集。如何合并2个不同长度的数据集?
TABLE1: people
gender name
M raa
F chico
M july
F sergio
TABLE2: serial_numbers
gender serial
M 4
F 5
我想要的结果是
result
gender name serial
M raa 4
F chico 5
M july 4
F sergio 5
答
我在这里创造的数据集来说明如何合并两个数据集:
data people;
infile cards;
length gender $1
name $10;
input gender name;
cards;
M raa
F chico
M july
F sergio
;
run;
data serial_numbers;
length gender $1
serial 8;
infile cards;
input gender serial;
cards;
M 4
F 5
;
run;
解决方法1:使用PROC SQL来执行连接。
proc sql;
create table result as
select a.gender, a.name, b.serial
from people a LEFT JOIN serial_numbers b
on a.gender=b.gender;
quit;
proc print data=result;
run;
解决方案2:使用数据步骤来合并两个数据集。这需要对数据集进行排序:
proc sort data=people;
by gender;
run;
proc sort data=serial_numbers;
by gender;
run;
data result;
merge people serial_numbers;
by gender;
run;
proc print data=result;
run;
+0
通常最好是解释一个解决方案,而不是只发布一些匿名代码行。你可以阅读[我如何写一个好的答案](https://stackoverflow.com/help/how-to-answer),还有[完全解释基于代码的答案](https://meta.stackexchange.com /问题/ 114762 /解释-entirely-%E2%80%8C%E2%80%8Bcode为主,答案) –
您是否尝试过简单合并数据集? – Joe
此问题不符合SO指导原则。请发布您迄今为止尝试的内容。 – Reeza