<?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: Datastep logic in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352235#M82076</link>
    <description>&lt;P&gt;&lt;STRONG&gt;/*untested*/&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;temp=compare(col1,col2);&lt;/P&gt;&lt;P&gt;if temp&amp;lt;&lt;STRONG&gt;0&lt;/STRONG&gt; then find=substr(col2,abs(temp));&lt;/P&gt;&lt;P&gt;else if temp&amp;gt;&lt;STRONG&gt;0&lt;/STRONG&gt; then find=substr(col1,temp);&lt;/P&gt;&lt;P&gt;drop temp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen Srinivasan&lt;/P&gt;</description>
    <pubDate>Fri, 21 Apr 2017 16:28:53 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2017-04-21T16:28:53Z</dc:date>
    <item>
      <title>Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352222#M82070</link>
      <description>&lt;P&gt;Hello All&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;i have the following&amp;nbsp;&lt;/P&gt;
&lt;P&gt;col&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;col1&lt;/P&gt;
&lt;P&gt;PARAM &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PARAMCD&lt;/P&gt;
&lt;P&gt;PARACD &amp;nbsp;&amp;nbsp;&amp;nbsp;PARAM&lt;/P&gt;
&lt;P&gt;AVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AVALC&lt;/P&gt;
&lt;P&gt;AVALC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AVAL&lt;/P&gt;
&lt;P&gt;AVISIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AVISTIN&lt;/P&gt;
&lt;P&gt;AVISITN&amp;nbsp;&amp;nbsp; AVISIT&lt;/P&gt;
&lt;P&gt;AVISIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AVAL&lt;/P&gt;
&lt;P&gt;AVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMCD&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I should be able to compare col and col1 variables and create a variable output as follows&lt;/P&gt;
&lt;P&gt;i.e extract “CD” is it PARAM vs PARAMCD&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extract&amp;nbsp; “C”&amp;nbsp;&amp;nbsp; if it is AVAL vs AVALC&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extract&amp;nbsp;&amp;nbsp; “N”&amp;nbsp; if it is AVISIT vs AVISITN&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;col&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;col1&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; output&lt;/P&gt;
&lt;P&gt;PARAM &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PARAMCD&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; CD&lt;/P&gt;
&lt;P&gt;PARAMCD &amp;nbsp;&amp;nbsp;&amp;nbsp;PARAM&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; CD&lt;/P&gt;
&lt;P&gt;AVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AVALC&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; C&lt;/P&gt;
&lt;P&gt;AVALC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AVAL&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;C&lt;/P&gt;
&lt;P&gt;AVISIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AVISTIN&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;N&lt;/P&gt;
&lt;P&gt;AVISITN&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AVISIT&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; N&lt;/P&gt;
&lt;P&gt;AVISIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;AVAL&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;&lt;/P&gt;
&lt;P&gt;AVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;PARAMCD&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 15:55:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352222#M82070</guid>
      <dc:creator>Almoha</dc:creator>
      <dc:date>2017-04-21T15:55:03Z</dc:date>
    </item>
    <item>
      <title>Re: Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352229#M82072</link>
      <description>&lt;P&gt;Here is one way:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
  input (col col1) ($);
  cards;
PARAM     PARAMCD
PARAMCD    PARAM
AVAL         AVALC
AVALC      AVAL
AVISIT      AVISITN
AVISITN   AVISIT
AVISIT       AVAL
AVAL         PARAMCD
;

data want;
  set have;
  array cols(*) col col1;
  call sortc(of cols(*));
  if cols(1) eq 'PARAM' and cols(2) eq 'PARAMCD' then output="CD";
  else if cols(1) eq 'AVAL' and cols(2) eq 'AVALC' then output="C";
  else if cols(1) eq 'AVISIT' and cols(2) eq 'AVISITN' then output="N";
run;

&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 16:06:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352229#M82072</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-21T16:06:52Z</dc:date>
    </item>
    <item>
      <title>Re: Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352235#M82076</link>
      <description>&lt;P&gt;&lt;STRONG&gt;/*untested*/&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;temp=compare(col1,col2);&lt;/P&gt;&lt;P&gt;if temp&amp;lt;&lt;STRONG&gt;0&lt;/STRONG&gt; then find=substr(col2,abs(temp));&lt;/P&gt;&lt;P&gt;else if temp&amp;gt;&lt;STRONG&gt;0&lt;/STRONG&gt; then find=substr(col1,temp);&lt;/P&gt;&lt;P&gt;drop temp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen Srinivasan&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 16:28:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352235#M82076</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-04-21T16:28:53Z</dc:date>
    </item>
    <item>
      <title>Re: Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352294#M82095</link>
      <description>&lt;P&gt;Yet another way:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA MYDATA;&lt;BR /&gt;LENGTH COL $7. COL1 $7.;&lt;BR /&gt;INPUT COL COL1;&lt;BR /&gt;CARDS;&lt;BR /&gt;PARAM PARAMCD&lt;BR /&gt;PARACD PARAM&lt;BR /&gt;AVAL AVALC&lt;BR /&gt;AVALC AVAL&lt;BR /&gt;AVISIT AVISTIN&lt;BR /&gt;AVISITN AVISIT&lt;BR /&gt;AVISIT AVAL&lt;BR /&gt;AVAL PARAMCD&lt;BR /&gt;;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA MYDATA;&lt;BR /&gt;SET MYDATA;&lt;BR /&gt;LENGTH REMAINDER $ 15;&lt;BR /&gt;IF INDEX(TRIM(COL1), TRIM(COL)) &amp;gt; 0 THEN DO;&lt;BR /&gt;REMAINDER = TRANWRD(TRIM(COL1), TRIM(COL), ' ');&lt;BR /&gt;END;&lt;BR /&gt;RUN;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 18:59:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352294#M82095</guid>
      <dc:creator>thomp7050</dc:creator>
      <dc:date>2017-04-21T18:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352340#M82115</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input (col col1) ($);
  cards;
PARAM     PARAMCD
PARAMCD    PARAM
AVAL         AVALC
AVALC      AVAL
AVISIT      AVISITN
AVISITN   AVISIT
AVISIT       AVAL
AVAL         PARAMCD
;

data want;
set have;
if trim(col) =: trim(col1) then 
    if length(col) &amp;lt; length(col1) then
        output = substr(col1, length(col)+1);
    else output = substr(col, length(col1)+1);
run;

proc print; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 21 Apr 2017 21:51:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352340#M82115</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-04-21T21:51:51Z</dc:date>
    </item>
    <item>
      <title>Re: Datastep logic</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352397#M82133</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input (col col1) ($);
  cards;
PARAM     PARAMCD
PARAMCD    PARAM
AVAL         AVALC
AVALC      AVAL
AVISIT      AVISITN
AVISITN   AVISIT
AVISIT       AVAL
AVAL         PARAMCD
;
run;
data want;
 set have;
 x=abs(compare(col,col1));
 len1=length(col);
 len2=length(col1);
 if x gt min(len1,len2) then do;
  if x le len1 then output=substr(col,x);
   else output=substr(col1,x);
 end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 22 Apr 2017 04:14:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Datastep-logic/m-p/352397#M82133</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-22T04:14:31Z</dc:date>
    </item>
  </channel>
</rss>

