2016-01-14 79 views
1

我具有低於2點的數據集:SAS追加2點的數據集具有不同的變量

表A:

ID COL1 COL2 
1 X  X 
2 X  Y 
3 Z  Z 

表B:

ID COL1 COL3 
1 X  X 
4 X  Y 
5 Z  Z 

我期待其結果是:

ID COL1 COL2 COL3 
     1 X  X 
     2 X  Y 
     3 Z  Z 
     4 X   y 
     5 z   z 

但是,當使用宏貝洛w,COL3被截斷。

%macro append(dsn); 
proc append base=tablea data=&dsn; 
run; 
%mend append; 

%append(tableb); 

回答

1

PROC APPEND比的結果,你會只用一個SET聲明中得到不同的規則。其中一條規則是它不修改BASE數據集。所以它不能添加新的變量。聽起來像你想要這個,而不是。

data tablea ; 
    set tablea tableb; 
run; 
+0

我想過一個SET語句以及但兩者都是非常大的數據集和查詢的時間太長 –

+0

我相信還有其他的選擇(始終是!)。但是如果你的DS是按照上面的順序排序的,相信一個簡單的'ID'合併就可以完成你所要求的。然後,您將在第3列中創建您的缺失值,ID值爲4和5.但無法評論速度,因爲我不知道您的表有多大。 – SMW

+0

由於您通過添加列來修改TABLEA的定義,因此無法避免必須重新寫入數據。 – Tom

相關問題