2013-08-22 61 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