2011-02-15 37 views
2

假設我在IML中有許多矩陣。它們可以是數字或字符。我將如何去創建一個SAS數據集?SAS/IML:從多個矩陣創建數據集

我想是這樣

n = {1 2 3, 4 5 6};  /* 2 x 3 numeric */ 
c = {'a' 'b', 'c' 'd'}; /* 2 x 2 character */ 
dsvars = {n c}; 
create dat var dsvars; /* should be a 2-obs, 5-variable dataset */ 
append; 

但是這原來N和C成列向量和出口的,這不是我想要的。我應該單獨導出n和c並將它們合併到DATA步驟中嗎?

回答

4

當n和c是向量時,您的方法可以工作。當它們是矩陣時,有幾種方法可以做到這一點。我喜歡使用CREATE FROM和APPEND FROM語法,並編寫數字和字符矩陣來分離我後來合併的數據集:

proc iml; 
n = {1 2 3, 4 5 6};  /* 2 x 3 numeric */ 
c = {'a' 'b', 'c' 'd'}; /* 2 x 2 character */ 

nNames = "n1":"n3"; 
cNames = "c1":"c2"; 
create ndat from n[colname=nNames]; 
append from n; 
create cdat from c[colname=cNames]; 
append from c; 
quit; 

data dat; 
    merge ndat cdat; 
run; 
proc print;run; 
+0

非常感謝里克,非常感謝。 – 2011-02-23 01:07:04