<?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: Dynamic replace function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159711#M263225</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would make &amp;amp;search &amp;amp;replace and &amp;amp;columnlist parameters of %searchreplace.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't get what you are trying to do with %checklist.&amp;nbsp; What options do you wan't to allow for specificaion of the variables(&amp;amp;columnlist) to be processed?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Nov 2013 13:31:05 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2013-11-29T13:31:05Z</dc:date>
    <item>
      <title>Dynamic replace function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159710#M263224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Im trying to create a dynamic function to let me search and replace all coloumns in a specific datasheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Im having some trouble with my array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the as-if code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** Options;&lt;/P&gt;&lt;P&gt;%let search&amp;nbsp;&amp;nbsp; = "P";&lt;/P&gt;&lt;P&gt;%let replace&amp;nbsp; = "A";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** Find coloums;&lt;/P&gt;&lt;P&gt;%macro checklist; &lt;/P&gt;&lt;P&gt; %global columnlist; &lt;/P&gt;&lt;P&gt;%mend; &lt;/P&gt;&lt;P&gt;%checklist &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** S&amp;amp;R function;&lt;/P&gt;&lt;P&gt;%macro searchreplace(data); &lt;/P&gt;&lt;P&gt;data &amp;amp;data._new; &lt;/P&gt;&lt;P&gt; set &amp;amp;data; &lt;/P&gt;&lt;P&gt; array varlist{*} &amp;amp;columnlist; &lt;/P&gt;&lt;P&gt; do i = 1 to dim(varlist); &lt;/P&gt;&lt;P&gt;&amp;nbsp; varlist(i)=tranwrd(varlist(i), &amp;amp;search, &amp;amp;replace); &lt;/P&gt;&lt;P&gt; end; &lt;/P&gt;&lt;P&gt; drop i; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** Test;&lt;/P&gt;&lt;P&gt;%searchreplace(data=testdata);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--- &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my error log:&lt;/P&gt;&lt;P&gt;30&amp;nbsp;&amp;nbsp; ** Options;&lt;/P&gt;&lt;P&gt;31&amp;nbsp;&amp;nbsp; %let search&amp;nbsp;&amp;nbsp; = "P";&lt;/P&gt;&lt;P&gt;32&amp;nbsp;&amp;nbsp; %let replace&amp;nbsp; = "A";&lt;/P&gt;&lt;P&gt;33&lt;/P&gt;&lt;P&gt;34&amp;nbsp;&amp;nbsp; ** Find coloums;&lt;/P&gt;&lt;P&gt;35&amp;nbsp;&amp;nbsp; %macro checklist;&lt;/P&gt;&lt;P&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp; %global columnlist;&lt;/P&gt;&lt;P&gt;37&amp;nbsp;&amp;nbsp;&amp;nbsp; /* %if &amp;amp;columnlist eq %then %let columnlist=_character_; */&lt;/P&gt;&lt;P&gt;38&amp;nbsp;&amp;nbsp; %mend checklist;&lt;/P&gt;&lt;P&gt;39&amp;nbsp;&amp;nbsp; %checklist&lt;/P&gt;&lt;P&gt;40&lt;/P&gt;&lt;P&gt;41&amp;nbsp;&amp;nbsp; ** Søg og erstat funktion;&lt;/P&gt;&lt;P&gt;42&amp;nbsp;&amp;nbsp; %macro searchreplace(data);&lt;/P&gt;&lt;P&gt;43&amp;nbsp;&amp;nbsp; data &amp;amp;data._ny;&lt;/P&gt;&lt;P&gt;44&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;data;&lt;/P&gt;&lt;P&gt;45&amp;nbsp;&amp;nbsp;&amp;nbsp; array varlist{*} &amp;amp;columnlist;&lt;/P&gt;&lt;P&gt;46&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to dim(varlist);&lt;/P&gt;&lt;P&gt;47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; varlist(i)=tranwrd(varlist(i), &amp;amp;search, &amp;amp;replace);&lt;/P&gt;&lt;P&gt;48&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;49&amp;nbsp;&amp;nbsp;&amp;nbsp; drop i;&lt;/P&gt;&lt;P&gt;50&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;51&amp;nbsp;&amp;nbsp; %mend;&lt;/P&gt;&lt;P&gt;52&lt;/P&gt;&lt;P&gt;53&amp;nbsp;&amp;nbsp; ** Kør skidtet;&lt;/P&gt;&lt;P&gt;54&amp;nbsp;&amp;nbsp; %searchreplace(data=testdata);&lt;/P&gt;&lt;P&gt;ERROR: The array varlist has been defined with zero elements.&lt;/P&gt;&lt;P&gt;ERROR: Too many array subscripts specified for array varlist.&lt;/P&gt;&lt;P&gt;ERROR: Too many array subscripts specified for array varlist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any input / help would be much appriciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kasper&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Nov 2013 13:13:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159710#M263224</guid>
      <dc:creator>bergsorensen</dc:creator>
      <dc:date>2013-11-29T13:13:24Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic replace function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159711#M263225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would make &amp;amp;search &amp;amp;replace and &amp;amp;columnlist parameters of %searchreplace.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't get what you are trying to do with %checklist.&amp;nbsp; What options do you wan't to allow for specificaion of the variables(&amp;amp;columnlist) to be processed?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Nov 2013 13:31:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159711#M263225</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2013-11-29T13:31:05Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamic replace function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159712#M263226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Throw&lt;/P&gt;&lt;P&gt;options symbolgen;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for debugging. According to your log, COLUMNLIST macro variable was never affected a value as the condition segment is in comments so you tried to define a variable-list array without providing any variables. This should be where your error comes from.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would also add a columnlist param to the the macro as DN pointed out. you can embed your condition within the macro or do a simple error handling.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Nov 2013 17:29:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamic-replace-function/m-p/159712#M263226</guid>
      <dc:creator>Vince28_Statcan</dc:creator>
      <dc:date>2013-11-29T17:29:56Z</dc:date>
    </item>
  </channel>
</rss>

