如何在SAS中组合2个表,如下面的数据集?

时间:2015-08-19 21:26:51

标签: sas

我有两个数据集:

首先:

Name    Bill
A       1
B       2
C       3
D       .
E       .
F       6

第二

Name    Bill
D       4
E       5

我想将两者组合成一个表,如下所示:

Name    Bill
A       1
B       2
C       3
D       4
E       5
F       6

我尝试了合并声明,但它没有用。

2 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是使用proc sql。

让我们先设置您的样本数据:

DATA t1;
  INPUT Name $ Bill;
  DATALINES;
A 1
B 2
C 3
D .
E .
F 6
run;

DATA t2;
  INPUT Name $ Bill;
  DATALINES;
D 4
E 5
run;

我只是想从第一个表中替换缺少的值,而在第二个表中可以使用左连接和合并函数替换相应的缺失值。

procedure sql;
    create table newT as
    select 
        t1.Name
        ,coalesce(t1.Bill, t2.Bill) as Bill  
    from t1
    left join t2 on t1.Name = t2.Name
    ;
quit;

答案 1 :(得分:0)

MERGE声明将产生您想要的答案。为什么你认为它不起作用?

data want ;
  merge first second ;
  by name ;
run;