2013-08-22 63 views
0

表1Excel中SUMPRODUCT在SAS

Age  B C D E F G H 
0-10 5 6 8 9 0 1 1 
10-20 4 5 9 7 1 4 5 
20-30 5 6 5 4 2 5 8 
0-10 0 4 0 5 8 0 7 

表2

Age  A1 B1 C1 D1 
0-10  0.1 0.9 0.2 
10-20 0.5 0.6 0.7 

我想提取

SUMPRODUCT(Table1(G:H),Table2(B1:C1)) 

與條件IF Table1.Age = Table2.Age

輸出表應該像

AGE SUMPRODUCT 
0-10 0.8 
10-20 0.70 
+0

只是我的無知(和好奇心),但是你能拼出數學背後說0.70的結果? – pnuts

+0

抱歉的prunts,輸出不是完全輸出這些表。僅供參考。 – gops11

回答

0

你需要兩個數據集合併到一起,然後計算出產品的總和。

data want; 
merge table1(in=a) table2(in=b); 
by age; 
if a and b; 
newvar = sum(g*b1, h*c1); 
run; 

你可以在SQL連接或散列表查找中做同樣的事情。

陣列:

data want; 
merge table1(in=a) table2(in=b); 
by age; 
if a and b; 
array avars[20] <list of a vars>; 
array bvars[20] <list of b vars>; 
do _t = 1 to dim(avars); 
    newvar = sum(newvar,avars[_t]*bvars[_t]); 
end; 
run; 
+0

謝謝你的回覆,但變量在每個表格中都是20左右,有時候我需要做更多的2個表格。我想過使用Array語句,但沒有獲取值。你能否請用ARRAY解釋.. – gops11

+0

如果你有兩個數組數組,然後只是遍歷關節數組並累加到一個sum變量中。沒什麼特別的。 – Joe

+0

謝謝你的時間,並會嘗試一下。 – gops11