<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to multiply two dataset and calculate an average? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286695#M58848</link>
    <description>&lt;P&gt;I have two large datasets. Dataset 1 with returns. Dataset 2 with 0 or 1. I need to have an output where I calculate the average of the returns by row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A mini example could be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;N=2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATASET 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATASET 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Average (Output)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Var1 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var2 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Var1 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var2 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var3&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.5+0.1)/N&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.1+0.2)/N&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.5+0.3)/N&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I do this?&lt;/P&gt;</description>
    <pubDate>Sun, 24 Jul 2016 18:47:30 GMT</pubDate>
    <dc:creator>Anon123</dc:creator>
    <dc:date>2016-07-24T18:47:30Z</dc:date>
    <item>
      <title>How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286695#M58848</link>
      <description>&lt;P&gt;I have two large datasets. Dataset 1 with returns. Dataset 2 with 0 or 1. I need to have an output where I calculate the average of the returns by row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A mini example could be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;N=2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATASET 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATASET 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Average (Output)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Var1 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var2 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Var1 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var2 &amp;nbsp; &amp;nbsp; &amp;nbsp; Var3&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.5+0.1)/N&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.1+0.2)/N&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (0.5+0.3)/N&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I do this?&lt;/P&gt;</description>
      <pubDate>Sun, 24 Jul 2016 18:47:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286695#M58848</guid>
      <dc:creator>Anon123</dc:creator>
      <dc:date>2016-07-24T18:47:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286699#M58850</link>
      <description>First join the two data sets. I can't see an id variable but I guess you left that our to male the example as simple as possible...&lt;BR /&gt;The You could use a two dimensional array to make your program flexible (if in the future more variables will be used). Of use hard coded variable name to the calculation  sum(var1_ds1*var1_ds2, var2 etc) / N</description>
      <pubDate>Sun, 24 Jul 2016 19:08:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286699#M58850</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-07-24T19:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286700#M58851</link>
      <description>I'm not sure what an id variable is.&lt;BR /&gt;&lt;BR /&gt;Can you make an example of a dynamic code?</description>
      <pubDate>Sun, 24 Jul 2016 19:12:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286700#M58851</guid>
      <dc:creator>Anon123</dc:creator>
      <dc:date>2016-07-24T19:12:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286705#M58856</link>
      <description>&lt;P&gt;An ID variable tells SAS which rows to match from A with rows from B.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Merge datasets by ID variable - you can't have the same variable names in each so you'll need to rename them.&lt;/P&gt;
&lt;P&gt;2. Declare Arrays for each&lt;/P&gt;
&lt;P&gt;3. Mulitple/Average&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It would have been better if you'd explicitly written out your formula as&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;0.5*1 + 0.2*0 + 0.1*1/N&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What is N by the way, 2 or 3?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
merge a b(rename=var1-var3=ind1-ind3);
by ID;

array table1(*) var1-var3;
array table2(*) ind1-ind3;
total=0;&lt;BR /&gt;n=0;
do i=1 to dim(table1);
total=table1(i)*table2(*) + total;
n=n+1;
end;

average=total/n;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 24 Jul 2016 19:40:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286705#M58856</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-07-24T19:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286706#M58857</link>
      <description>What is your N for Large Datasets?</description>
      <pubDate>Sun, 24 Jul 2016 19:44:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286706#M58857</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2016-07-24T19:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286709#M58860</link>
      <description>&lt;P&gt;&amp;nbsp;OT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I provide a SAS/IML, R and WPS solution for moderate size datasets.&lt;/P&gt;&lt;P&gt;For huge datasets the array method may be more appropriate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;see&lt;/P&gt;&lt;P&gt;&lt;A href="https://listserv.uga.edu/cgi-bin/wa?A2=SAS-L;5d05f7f.1607d" target="_blank"&gt;https://listserv.uga.edu/cgi-bin/wa?A2=SAS-L;5d05f7f.1607d&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Jul 2016 21:19:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286709#M58860</guid>
      <dc:creator>rogerjdeangelis</dc:creator>
      <dc:date>2016-07-24T21:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286711#M58862</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/42345"&gt;@rogerjdeangelis﻿&lt;/a&gt;&amp;nbsp;You have to log in for that link, is there a link that doesn't require a log in?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EDIT:&lt;/P&gt;
&lt;P&gt;I'm not very knowledgable about&amp;nbsp;performance, but I think IML would be faster than arrays.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Jul 2016 21:22:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286711#M58862</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-07-24T21:22:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to multiply two dataset and calculate an average?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286866#M58930</link>
      <description>&lt;P&gt;Here is an IML solution&amp;nbsp;(it uses&amp;nbsp;&lt;A href="http://blogs.sas.com/content/iml/2013/05/20/matri-multiplication.html" target="_self"&gt;elementwise multiplication&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data dataset1;
input var1 var2 var3; 
datalines;
.5 .2 .1
.1 .2 0
.2 .5 .3
;



data dataset2;
input var1 var2 var3; 
datalines;
1 0 1
1 1 0 
0 1 1 
;



proc iml;


	use dataset1; 
	read all into ds1; 

	n = nrow(ds1);

	use dataset2; 
	read all into ds2; 

	elementProd = ds1#ds2;

	want = elementProd[,+] / n ; 

	print want; 


quit;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 13:51:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-multiply-two-dataset-and-calculate-an-average/m-p/286866#M58930</guid>
      <dc:creator>rayIII</dc:creator>
      <dc:date>2016-07-25T13:51:12Z</dc:date>
    </item>
  </channel>
</rss>

