<?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 remove a &amp;quot;prefix&amp;quot; from relevant variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215735#M39804</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I pull from a database that has sum, but not all, variables prefixed with XCBM_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to remove all of these prefixes from the variables name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is what I have tried:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA TEST;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET SASHELP.BWEIGHT;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO RENAME(LIB=,DSN=);&lt;/P&gt;&lt;P&gt;PROC CONTENTS DATA=&amp;amp;LIB..&amp;amp;DSN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE 'BEFORE';&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL NOPRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; NVAR INTO :NUM_VARS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; DICTIONARY.TABLES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp; LIBNAME="&amp;amp;LIB" AND MEMNAME="&amp;amp;DSN"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; DISTINCT(NAME) INTO :VAR1-:VAR%TRIM(%LEFT(&amp;amp;NUM_VARS))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; DICTIONARY.COLUMNS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp; LIBNAME="&amp;amp;LIB" AND MEMNAME="&amp;amp;DSN"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%PUT &amp;amp;NUM_VARS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC DATASETS LIBRARY = &amp;amp;LIB;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MODIFY &amp;amp;DSN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RENAME&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %DO I = 1 %TO &amp;amp;NUM_VARS.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %IF %SUBSTR(&amp;amp;&amp;amp;VAR&amp;amp;I,1,2) = 'm_' %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;amp;&amp;amp;VAR&amp;amp;I = %SUBSTR(&amp;amp;&amp;amp;VAR&amp;amp;I,3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;PROC CONTENTS DATA=&amp;amp;LIB..&amp;amp;DSN.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE 'AFTER';&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;%MEND RENAME;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%RENAME(LIB=WORK,DSN=TEST)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 15 May 2015 20:23:20 GMT</pubDate>
    <dc:creator>GregG</dc:creator>
    <dc:date>2015-05-15T20:23:20Z</dc:date>
    <item>
      <title>How to remove a "prefix" from relevant variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215735#M39804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I pull from a database that has sum, but not all, variables prefixed with XCBM_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to remove all of these prefixes from the variables name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is what I have tried:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA TEST;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET SASHELP.BWEIGHT;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO RENAME(LIB=,DSN=);&lt;/P&gt;&lt;P&gt;PROC CONTENTS DATA=&amp;amp;LIB..&amp;amp;DSN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE 'BEFORE';&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL NOPRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; NVAR INTO :NUM_VARS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; DICTIONARY.TABLES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp; LIBNAME="&amp;amp;LIB" AND MEMNAME="&amp;amp;DSN"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; DISTINCT(NAME) INTO :VAR1-:VAR%TRIM(%LEFT(&amp;amp;NUM_VARS))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; DICTIONARY.COLUMNS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp; LIBNAME="&amp;amp;LIB" AND MEMNAME="&amp;amp;DSN"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%PUT &amp;amp;NUM_VARS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC DATASETS LIBRARY = &amp;amp;LIB;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MODIFY &amp;amp;DSN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RENAME&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %DO I = 1 %TO &amp;amp;NUM_VARS.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %IF %SUBSTR(&amp;amp;&amp;amp;VAR&amp;amp;I,1,2) = 'm_' %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;amp;&amp;amp;VAR&amp;amp;I = %SUBSTR(&amp;amp;&amp;amp;VAR&amp;amp;I,3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;PROC CONTENTS DATA=&amp;amp;LIB..&amp;amp;DSN.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE 'AFTER';&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;%MEND RENAME;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%RENAME(LIB=WORK,DSN=TEST)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 May 2015 20:23:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215735#M39804</guid>
      <dc:creator>GregG</dc:creator>
      <dc:date>2015-05-15T20:23:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to remove a "prefix" from relevant variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215736#M39805</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How many variables do you expect? Can you use a single macro variable for the rename statement or would you expect it to be longer than 62K characters?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 May 2015 20:35:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215736#M39805</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-05-15T20:35:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to remove a "prefix" from relevant variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215737#M39806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Example could be adapted to work with prefixes below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/********************************************************************&lt;/P&gt;&lt;P&gt;Example : Rename variables based on suffix rather than prefix&lt;/P&gt;&lt;P&gt;********************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data sample;&lt;/P&gt;&lt;P&gt;do i=10000 to 12000;&lt;/P&gt;&lt;P&gt;start_date=i;&lt;/P&gt;&lt;P&gt;middle_date=i+3;&lt;/P&gt;&lt;P&gt;end_date=i+5;&lt;/P&gt;&lt;P&gt;date_no_change=start_date;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;format start_date end_date middle_date date9.;&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 noprint;&lt;/P&gt;&lt;P&gt;select catx("=", name, catt('DT_', tranwrd(upper(name), '_DATE', ' '))) &lt;/P&gt;&lt;P&gt;into :rename_list&lt;/P&gt;&lt;P&gt;separated by " "&lt;/P&gt;&lt;P&gt;from sashelp.vcolumn&lt;/P&gt;&lt;P&gt;where libname='WORK'&lt;/P&gt;&lt;P&gt;and memname='SAMPLE'&lt;/P&gt;&lt;P&gt;and upper(trim(name)) like '%_DATE';&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;%put &amp;amp;rename_list;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc datasets library=work nodetails nolist;&lt;/P&gt;&lt;P&gt;modify sample;&lt;/P&gt;&lt;P&gt;rename &amp;amp;rename_list;&lt;/P&gt;&lt;P&gt;run; quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data=sample noobs;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 May 2015 20:43:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-remove-a-quot-prefix-quot-from-relevant-variables/m-p/215737#M39806</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-05-15T20:43:19Z</dc:date>
    </item>
  </channel>
</rss>

