<?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 BASE: from TRIANGLE UPPER MATRIX to Squared Matrix - NO IML in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280407#M56655</link>
    <description>&lt;P&gt;When your variables are numeric it simplifies even more. &amp;nbsp;After all the name of the procedure is TRANSPOSE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data upper;
   infile datalines dsd;
   input varname $ var1 var2 var3;
   datalines;
var1,11,12,13
var2,,22,23
var3,,,33
;;;
   run;
proc transpose data=upper out=lower name=varname;
   id varname;
   run;
data square;
   update lower upper;
   by varname;
   run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 27 Jun 2016 12:28:58 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2016-06-27T12:28:58Z</dc:date>
    <item>
      <title>SAS BASE: from TRIANGLE UPPER MATRIX to Squared Matrix - NO IML</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280368#M56646</link>
      <description>&lt;P&gt;Hello Everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have a triangle upper matrix like that:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data triangle_upper_matrix;
    infile datalines delimiter=',';
    input varname $ var1 $ var2 $ var3 $;
datalines;
var1, x11, x12, x13
var2,      , x22, x23
var3,      ,       ,x33
;;;
run;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and i want calculate the squared matrix, in order to the value in the lower portion of the matrix, like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Squared;
    infile datalines delimiter=',';
    input varname $ var1 $ var2 $ var3 $;
datalines;
var1, x11, x12, x13
var2, x12, x22, x23
var3, x13, x23, x33
;;;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;any suggests?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RESTRICTION: usually i used R but in my situation i havn't and also i don't have proc IML and after that i need to develop the same thing but in a dinamically way with a MACROPROGRAM where the only input is a dataset and without know number of variable and work&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you in advance&lt;/P&gt;&lt;P&gt;have a nice day&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MC&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jun 2016 09:51:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280368#M56646</guid>
      <dc:creator>MC1985</dc:creator>
      <dc:date>2016-06-27T09:51:00Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE: from TRIANGLE UPPER MATRIX to Squared Matrix - NO IML</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280383#M56654</link>
      <description>&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 upper;
   infile datalines dsd;
   input (varname var1 var2 var3)($);
   datalines;
var1,x11,x12,x13
var2,,x22,x23
var3,,,x33
;;;
   run;
proc transpose data=upper(drop=varname) out=lower prefix=var name=varname;
   var var:;
   run;
data square;
   update lower upper;
   by varname;
   run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/3775i761935623C574502/image-size/original?v=v2&amp;amp;px=-1" border="0" alt="Capture.PNG" title="Capture.PNG" /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Jun 2016 12:19:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280383#M56654</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-06-27T12:19:09Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE: from TRIANGLE UPPER MATRIX to Squared Matrix - NO IML</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280407#M56655</link>
      <description>&lt;P&gt;When your variables are numeric it simplifies even more. &amp;nbsp;After all the name of the procedure is TRANSPOSE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data upper;
   infile datalines dsd;
   input varname $ var1 var2 var3;
   datalines;
var1,11,12,13
var2,,22,23
var3,,,33
;;;
   run;
proc transpose data=upper out=lower name=varname;
   id varname;
   run;
data square;
   update lower upper;
   by varname;
   run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 27 Jun 2016 12:28:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280407#M56655</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-06-27T12:28:58Z</dc:date>
    </item>
    <item>
      <title>Re: SAS BASE: from TRIANGLE UPPER MATRIX to Squared Matrix - NO IML</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280646#M56747</link>
      <description>&lt;P&gt;My code is faster than Data _null_( John King &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data triangle_upper_matrix;
    infile datalines delimiter=',';
    input varname $ var1 $ var2 $ var3 $;
datalines;
var1, x11, x12, x13
var2,      , x22, x23
var3,      ,       ,x33
;;;
run;
%let dsid=%sysfunc(open(triangle_upper_matrix));
%let nobs=%sysfunc(attrn(&amp;amp;dsid,nlobs));
%let nvar=%eval(%sysfunc(attrn(&amp;amp;dsid,nvars))-1);
%let dsid=%sysfunc(close(&amp;amp;dsid));




data want;
 set triangle_upper_matrix;
 array x{&amp;amp;nobs,&amp;amp;nvar} $ _temporary_;
 array y{*} $ var1-var3;
 
 do i=1 to dim(y);
  x{_n_,i}=y{i};
 end;
 
 do i=1 to _n_-1;
  y{i}=x{i,_n_};
 end;
 drop i;
run;
proc print noobs;run;
 
 &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/3809iE694189AA5756F79/image-size/original?v=v2&amp;amp;px=-1" border="0" alt="x.png" title="x.png" /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jun 2016 04:34:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-BASE-from-TRIANGLE-UPPER-MATRIX-to-Squared-Matrix-NO-IML/m-p/280646#M56747</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-06-28T04:34:36Z</dc:date>
    </item>
  </channel>
</rss>

