<?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: How to segment variable based on correlation matrix? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-segment-variable-based-on-correlation-matrix/m-p/85703#M18393</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you doing some analysis Like decision tree ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I pick up 0.2 as correlation coefficient benchmark .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;array x{*} a1-a20;&lt;/P&gt;&lt;P&gt;do j=1 to 100;&lt;/P&gt;&lt;P&gt;do i=1 to dim(x);&lt;/P&gt;&lt;P&gt; x{i}=ranuni(1234);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop i j;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let corr=0.2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt; select name into : list separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='X';&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro decision;&lt;/P&gt;&lt;P&gt;%let i=1;&lt;/P&gt;&lt;P&gt;%do %while(1);&lt;/P&gt;&lt;P&gt;proc corr data=x outp=person(where=(_TYPE_='CORR')) noprint;&lt;/P&gt;&lt;P&gt;var &amp;amp;list ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data temp;&lt;/P&gt;&lt;P&gt; set person;&lt;/P&gt;&lt;P&gt; array x{*} a: ;&lt;/P&gt;&lt;P&gt; length var $ 40;&lt;/P&gt;&lt;P&gt; do i=1 to dim(x);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if x{i} eq 1 then leave;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else if abs(x{i}) ge &amp;amp;corr then do;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; corr=x{i};&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=_name_; output;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=vname(x{i}); output;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; keep corr var;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql ;&lt;/P&gt;&lt;P&gt;create table data_&amp;amp;i as select distinct var from temp;&lt;/P&gt;&lt;P&gt;%if &amp;amp;sqlobs = 0 %then %do;&lt;/P&gt;&lt;P&gt;create table data_&amp;amp;i as select _name_ as var from person; quit;&lt;/P&gt;&lt;P&gt;%return;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select name into : list separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='PERSON' and name not in (select distinct var from temp) and&amp;nbsp; name not in ('_NAME_' '_TYPE_');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;%let i=%eval(&amp;amp;i+1) ;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend decision;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%decision&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;消息编辑者为：xia keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Aug 2012 12:21:47 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2012-08-07T12:21:47Z</dc:date>
    <item>
      <title>How to segment variable based on correlation matrix?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-segment-variable-based-on-correlation-matrix/m-p/85702#M18392</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I need to do some segmentation on variables based on correlation matrix. The&amp;nbsp; correlation matrix is shown as below. If correlation coefficients of some variables in correlation matrix are larger than 0.75 or smaller than -0.75, they will be classified into one subgroup and be stored in one dataset, e.g. dataset_1. Then the variables in dataset_1 will be removed from correlation matrix. Then, if correlation coefficients of some variables in remaining correlation matrix are larger than 0.75 or smaller than -0.75,&amp;nbsp; they will be classified into another subgroup and be stored in another dataset, e.g. dataset_2. Then the variables in dataset_2 will be removed from correlation matrix....................And repeat until no variables have correlation coefficients of above 0.75 or below -0.75. The remaining variables will be stored in one datsets, dataset_n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="981"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="16" width="152"&gt;_NAME_&lt;/TD&gt;&lt;TD width="189"&gt;V1&lt;/TD&gt;&lt;TD width="64"&gt;V2&lt;/TD&gt;&lt;TD width="64"&gt;V3&lt;/TD&gt;&lt;TD width="64"&gt;V4&lt;/TD&gt;&lt;TD width="64"&gt;V5&lt;/TD&gt;&lt;TD width="64"&gt;V6&lt;/TD&gt;&lt;TD width="64"&gt;V7&lt;/TD&gt;&lt;TD width="64"&gt;V8&lt;/TD&gt;&lt;TD width="64"&gt;V9&lt;/TD&gt;&lt;TD width="64"&gt;V10&lt;/TD&gt;&lt;TD width="64"&gt;V11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V1&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.795283&lt;/TD&gt;&lt;TD align="right"&gt;0.648228&lt;/TD&gt;&lt;TD align="right"&gt;0.702434&lt;/TD&gt;&lt;TD align="right"&gt;0.814356&lt;/TD&gt;&lt;TD align="right"&gt;0.898034&lt;/TD&gt;&lt;TD align="right"&gt;0.72141&lt;/TD&gt;&lt;TD align="right"&gt;0.545573&lt;/TD&gt;&lt;TD align="right"&gt;0.410562&lt;/TD&gt;&lt;TD align="right"&gt;0.67573&lt;/TD&gt;&lt;TD align="right"&gt;0.79505&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V2&lt;/TD&gt;&lt;TD align="right"&gt;0.795282885&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.785185&lt;/TD&gt;&lt;TD align="right"&gt;0.852621&lt;/TD&gt;&lt;TD align="right"&gt;0.830391&lt;/TD&gt;&lt;TD align="right"&gt;0.75202&lt;/TD&gt;&lt;TD align="right"&gt;0.817556&lt;/TD&gt;&lt;TD align="right"&gt;0.682524&lt;/TD&gt;&lt;TD align="right"&gt;0.517509&lt;/TD&gt;&lt;TD align="right"&gt;0.8671&lt;/TD&gt;&lt;TD align="right"&gt;0.995331&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V3&lt;/TD&gt;&lt;TD align="right"&gt;0.648227521&lt;/TD&gt;&lt;TD align="right"&gt;0.785185&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.711466&lt;/TD&gt;&lt;TD align="right"&gt;0.690316&lt;/TD&gt;&lt;TD align="right"&gt;0.60089&lt;/TD&gt;&lt;TD align="right"&gt;0.716786&lt;/TD&gt;&lt;TD align="right"&gt;0.552231&lt;/TD&gt;&lt;TD align="right"&gt;0.50897&lt;/TD&gt;&lt;TD align="right"&gt;0.695645&lt;/TD&gt;&lt;TD align="right"&gt;0.824341&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V4&lt;/TD&gt;&lt;TD align="right"&gt;0.702433756&lt;/TD&gt;&lt;TD align="right"&gt;0.852621&lt;/TD&gt;&lt;TD align="right"&gt;0.711466&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.846026&lt;/TD&gt;&lt;TD align="right"&gt;0.662565&lt;/TD&gt;&lt;TD align="right"&gt;0.748602&lt;/TD&gt;&lt;TD align="right"&gt;0.701647&lt;/TD&gt;&lt;TD align="right"&gt;0.457522&lt;/TD&gt;&lt;TD align="right"&gt;0.757802&lt;/TD&gt;&lt;TD align="right"&gt;0.853448&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V5&lt;/TD&gt;&lt;TD align="right"&gt;0.81435639&lt;/TD&gt;&lt;TD align="right"&gt;0.830391&lt;/TD&gt;&lt;TD align="right"&gt;0.690316&lt;/TD&gt;&lt;TD align="right"&gt;0.846026&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.817881&lt;/TD&gt;&lt;TD align="right"&gt;0.772293&lt;/TD&gt;&lt;TD align="right"&gt;0.523626&lt;/TD&gt;&lt;TD align="right"&gt;0.398964&lt;/TD&gt;&lt;TD align="right"&gt;0.778101&lt;/TD&gt;&lt;TD align="right"&gt;0.829205&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V6&lt;/TD&gt;&lt;TD align="right"&gt;0.898034025&lt;/TD&gt;&lt;TD align="right"&gt;0.75202&lt;/TD&gt;&lt;TD align="right"&gt;0.60089&lt;/TD&gt;&lt;TD align="right"&gt;0.662565&lt;/TD&gt;&lt;TD align="right"&gt;0.817881&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.707077&lt;/TD&gt;&lt;TD align="right"&gt;0.457641&lt;/TD&gt;&lt;TD align="right"&gt;0.329565&lt;/TD&gt;&lt;TD align="right"&gt;0.679927&lt;/TD&gt;&lt;TD align="right"&gt;0.750266&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V7&lt;/TD&gt;&lt;TD align="right"&gt;0.721409554&lt;/TD&gt;&lt;TD align="right"&gt;0.817556&lt;/TD&gt;&lt;TD align="right"&gt;0.716786&lt;/TD&gt;&lt;TD align="right"&gt;0.748602&lt;/TD&gt;&lt;TD align="right"&gt;0.772293&lt;/TD&gt;&lt;TD align="right"&gt;0.707077&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.604067&lt;/TD&gt;&lt;TD align="right"&gt;0.517373&lt;/TD&gt;&lt;TD align="right"&gt;0.788003&lt;/TD&gt;&lt;TD align="right"&gt;0.819051&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V8&lt;/TD&gt;&lt;TD align="right"&gt;0.545573147&lt;/TD&gt;&lt;TD align="right"&gt;0.682524&lt;/TD&gt;&lt;TD align="right"&gt;0.552231&lt;/TD&gt;&lt;TD align="right"&gt;0.701647&lt;/TD&gt;&lt;TD align="right"&gt;0.523626&lt;/TD&gt;&lt;TD align="right"&gt;0.457641&lt;/TD&gt;&lt;TD align="right"&gt;0.604067&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.585093&lt;/TD&gt;&lt;TD align="right"&gt;0.584004&lt;/TD&gt;&lt;TD align="right"&gt;0.681971&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V9&lt;/TD&gt;&lt;TD align="right"&gt;0.410562159&lt;/TD&gt;&lt;TD align="right"&gt;0.517509&lt;/TD&gt;&lt;TD align="right"&gt;0.50897&lt;/TD&gt;&lt;TD align="right"&gt;0.457522&lt;/TD&gt;&lt;TD align="right"&gt;0.398964&lt;/TD&gt;&lt;TD align="right"&gt;0.329565&lt;/TD&gt;&lt;TD align="right"&gt;0.517373&lt;/TD&gt;&lt;TD align="right"&gt;0.585093&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.485006&lt;/TD&gt;&lt;TD align="right"&gt;0.522883&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V10&lt;/TD&gt;&lt;TD align="right"&gt;0.675730408&lt;/TD&gt;&lt;TD align="right"&gt;0.8671&lt;/TD&gt;&lt;TD align="right"&gt;0.695645&lt;/TD&gt;&lt;TD align="right"&gt;0.757802&lt;/TD&gt;&lt;TD align="right"&gt;0.778101&lt;/TD&gt;&lt;TD align="right"&gt;0.679927&lt;/TD&gt;&lt;TD align="right"&gt;0.788003&lt;/TD&gt;&lt;TD align="right"&gt;0.584004&lt;/TD&gt;&lt;TD align="right"&gt;0.485006&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;0.860323&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="16"&gt;V11&lt;/TD&gt;&lt;TD align="right"&gt;0.795050139&lt;/TD&gt;&lt;TD align="right"&gt;0.995331&lt;/TD&gt;&lt;TD align="right"&gt;0.824341&lt;/TD&gt;&lt;TD align="right"&gt;0.853448&lt;/TD&gt;&lt;TD align="right"&gt;0.829205&lt;/TD&gt;&lt;TD align="right"&gt;0.750266&lt;/TD&gt;&lt;TD align="right"&gt;0.819051&lt;/TD&gt;&lt;TD align="right"&gt;0.681971&lt;/TD&gt;&lt;TD align="right"&gt;0.522883&lt;/TD&gt;&lt;TD align="right"&gt;0.860323&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Is there one solution to do this?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Thanks in advance&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;MT.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Aug 2012 09:41:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-segment-variable-based-on-correlation-matrix/m-p/85702#M18392</guid>
      <dc:creator>MikeTurner</dc:creator>
      <dc:date>2012-08-07T09:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to segment variable based on correlation matrix?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-segment-variable-based-on-correlation-matrix/m-p/85703#M18393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you doing some analysis Like decision tree ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I pick up 0.2 as correlation coefficient benchmark .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;array x{*} a1-a20;&lt;/P&gt;&lt;P&gt;do j=1 to 100;&lt;/P&gt;&lt;P&gt;do i=1 to dim(x);&lt;/P&gt;&lt;P&gt; x{i}=ranuni(1234);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop i j;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let corr=0.2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt; select name into : list separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='X';&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro decision;&lt;/P&gt;&lt;P&gt;%let i=1;&lt;/P&gt;&lt;P&gt;%do %while(1);&lt;/P&gt;&lt;P&gt;proc corr data=x outp=person(where=(_TYPE_='CORR')) noprint;&lt;/P&gt;&lt;P&gt;var &amp;amp;list ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data temp;&lt;/P&gt;&lt;P&gt; set person;&lt;/P&gt;&lt;P&gt; array x{*} a: ;&lt;/P&gt;&lt;P&gt; length var $ 40;&lt;/P&gt;&lt;P&gt; do i=1 to dim(x);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if x{i} eq 1 then leave;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else if abs(x{i}) ge &amp;amp;corr then do;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; corr=x{i};&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=_name_; output;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=vname(x{i}); output;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; keep corr var;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql ;&lt;/P&gt;&lt;P&gt;create table data_&amp;amp;i as select distinct var from temp;&lt;/P&gt;&lt;P&gt;%if &amp;amp;sqlobs = 0 %then %do;&lt;/P&gt;&lt;P&gt;create table data_&amp;amp;i as select _name_ as var from person; quit;&lt;/P&gt;&lt;P&gt;%return;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select name into : list separated by ' ' &lt;/P&gt;&lt;P&gt;&amp;nbsp; from dictionary.columns &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='PERSON' and name not in (select distinct var from temp) and&amp;nbsp; name not in ('_NAME_' '_TYPE_');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;%let i=%eval(&amp;amp;i+1) ;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend decision;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%decision&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;消息编辑者为：xia keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Aug 2012 12:21:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-segment-variable-based-on-correlation-matrix/m-p/85703#M18393</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-08-07T12:21:47Z</dc:date>
    </item>
  </channel>
</rss>

