<?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 Re: SAS Macro for products of column in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228776#M41353</link>
    <description>&lt;P&gt;Code based on my interpretation of your narrative and not the "want to achieve" data you've posted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input Price _1 _2 _3 _4;
  datalines;
1 2 1 1 8
1 5 10 7 1
2 10 6 2 8
4.5 3 10 4 2
5.5 3 8 6 3
;
run;

data want(drop=_: Price);
  set have;
  array products {4} Product_1 - Product_4;
  array values {*} _1 - _4;
  do _i=1 to dim(products);
    products[_i]=price*values[_i];
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 07 Oct 2015 07:31:28 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2015-10-07T07:31:28Z</dc:date>
    <item>
      <title>SAS Macro for products of column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228771#M41349</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a question. I have the following tables:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="320"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" span="5" width="64" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;Price&lt;/TD&gt;
&lt;TD style="width: 48pt;" width="64"&gt;_1&lt;/TD&gt;
&lt;TD style="width: 48pt;" width="64"&gt;_2&lt;/TD&gt;
&lt;TD style="width: 48pt;" width="64"&gt;_3&lt;/TD&gt;
&lt;TD style="width: 48pt;" width="64"&gt;_4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0.605938&lt;/TD&gt;
&lt;TD align="right"&gt;0.698997&lt;/TD&gt;
&lt;TD align="right"&gt;0.631967&lt;/TD&gt;
&lt;TD align="right"&gt;0.768982&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0.979747&lt;/TD&gt;
&lt;TD align="right"&gt;0.730603&lt;/TD&gt;
&lt;TD align="right"&gt;0.651564&lt;/TD&gt;
&lt;TD align="right"&gt;0.755674&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;0.854955&lt;/TD&gt;
&lt;TD align="right"&gt;0.524984&lt;/TD&gt;
&lt;TD align="right"&gt;0.393906&lt;/TD&gt;
&lt;TD align="right"&gt;0.084612&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;4.5&lt;/TD&gt;
&lt;TD align="right"&gt;0.214883&lt;/TD&gt;
&lt;TD align="right"&gt;0.218393&lt;/TD&gt;
&lt;TD align="right"&gt;0.448404&lt;/TD&gt;
&lt;TD align="right"&gt;0.011109&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;5.5&lt;/TD&gt;
&lt;TD align="right"&gt;0.840106&lt;/TD&gt;
&lt;TD align="right"&gt;0.717766&lt;/TD&gt;
&lt;TD align="right"&gt;0.078595&lt;/TD&gt;
&lt;TD align="right"&gt;0.636096&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I wanted to get product of price and each of the column from column 2 to 5. I did this SAS macros:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%let n_RMA=4;&lt;BR /&gt;&lt;BR /&gt;%macro Crossprice(n_RMA);&lt;BR /&gt;%do i=1 %to &amp;amp;n_RMA;&lt;BR /&gt;&lt;BR /&gt;data data.whatever; set data.whatever;&lt;BR /&gt;result&amp;amp;i=price*_&amp;amp;i;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;BR /&gt;%Crossprice(&amp;amp;n_RMA);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I wanted to achieve four separate columns for this but I found out that I only got one column (which is the last calculation of product of price and _4). It seems that result 1 is being replaced by 2 and so on if I use the above code. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope you can help me with the coding. Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2015 05:42:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228771#M41349</guid>
      <dc:creator>DavidLie</dc:creator>
      <dc:date>2015-10-07T05:42:59Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Macro for products of column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228773#M41351</link>
      <description>Not obvious for what you are trying to do. Providing corresponding output data sample would help.&lt;BR /&gt;Your data is replaces because that's how the data step behaves. Use options mprint; to audit your macro code generation.</description>
      <pubDate>Wed, 07 Oct 2015 06:04:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228773#M41351</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2015-10-07T06:04:18Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Macro for products of column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228774#M41352</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for replying. I am sorry that I did not make myself clear. Let me start over.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Currently I have:&lt;/P&gt;
&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="320"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" span="5" width="64" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 30.0pt;"&gt;
&lt;TD class="xl65" style="height: 30.0pt; width: 48pt;" height="40" width="64"&gt;Price&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;_1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;_2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;_3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;_4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl66" style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl66" style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;5&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;10&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;7&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl66" style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;10&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;6&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl66" style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;4.5&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;10&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;4&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl66" style="height: 15.0pt; width: 48pt;" height="20" width="64"&gt;5.5&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;8&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;6&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;What do I want to achieve?&lt;/P&gt;
&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="256"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" span="4" width="64" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 30.0pt;"&gt;
&lt;TD class="xl65" style="height: 30.0pt; width: 48pt;" height="40" width="64"&gt;Product 1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;Product 2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;Product 3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;Product 4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;5&lt;/TD&gt;
&lt;TD align="right"&gt;10&lt;/TD&gt;
&lt;TD align="right"&gt;7&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;10&lt;/TD&gt;
&lt;TD align="right"&gt;6&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;10&lt;/TD&gt;
&lt;TD align="right"&gt;4&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD style="height: 15.0pt;" align="right" height="20"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;8&lt;/TD&gt;
&lt;TD align="right"&gt;6&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Product 1 is achieved through column "Price" x "_1"&lt;/P&gt;
&lt;P&gt;Product 2 is achieved through column "Price" x "_2" and so on. This is what I want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;BR /&gt;&lt;BR /&gt;David&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2015 06:44:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228774#M41352</guid>
      <dc:creator>DavidLie</dc:creator>
      <dc:date>2015-10-07T06:44:28Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Macro for products of column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228776#M41353</link>
      <description>&lt;P&gt;Code based on my interpretation of your narrative and not the "want to achieve" data you've posted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input Price _1 _2 _3 _4;
  datalines;
1 2 1 1 8
1 5 10 7 1
2 10 6 2 8
4.5 3 10 4 2
5.5 3 8 6 3
;
run;

data want(drop=_: Price);
  set have;
  array products {4} Product_1 - Product_4;
  array values {*} _1 - _4;
  do _i=1 to dim(products);
    products[_i]=price*values[_i];
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Oct 2015 07:31:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Macro-for-products-of-column/m-p/228776#M41353</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-07T07:31:28Z</dc:date>
    </item>
  </channel>
</rss>

