<?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 Make SAS interpret code contained in variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108007#M22464</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have made the following small dataset in order to illustrate my problem:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="screen_dump_dataset.png" class="jive-image" src="https://communities.sas.com/legacyfs/online/2270_screen_dump_dataset.png" /&gt;&lt;/P&gt;&lt;P&gt;What I need to do is to write a program that from columns 'algorithm' and 'category' calculates column 'result'. I have no idea where to start or if this is even possible in SAS. All tips and ideas are welcome.&lt;/P&gt;&lt;P&gt;/T&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Jul 2012 13:08:32 GMT</pubDate>
    <dc:creator>TTNY</dc:creator>
    <dc:date>2012-07-16T13:08:32Z</dc:date>
    <item>
      <title>Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108007#M22464</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have made the following small dataset in order to illustrate my problem:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="screen_dump_dataset.png" class="jive-image" src="https://communities.sas.com/legacyfs/online/2270_screen_dump_dataset.png" /&gt;&lt;/P&gt;&lt;P&gt;What I need to do is to write a program that from columns 'algorithm' and 'category' calculates column 'result'. I have no idea where to start or if this is even possible in SAS. All tips and ideas are welcome.&lt;/P&gt;&lt;P&gt;/T&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 13:08:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108007#M22464</guid>
      <dc:creator>TTNY</dc:creator>
      <dc:date>2012-07-16T13:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108008#M22465</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, the following only work on single character evaluation:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id algorithm :&amp;amp;$10. category :$8.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 B and C&amp;nbsp;&amp;nbsp; ABD &lt;/P&gt;&lt;P&gt;2 B and C&amp;nbsp;&amp;nbsp; ABC &lt;/P&gt;&lt;P&gt;3 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; ABC &lt;/P&gt;&lt;P&gt;4 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; AB&amp;nbsp; &lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;length result $8.;&lt;/P&gt;&lt;P&gt;if findw(algorithm,'and')&amp;gt;0 then do;&lt;/P&gt;&lt;P&gt;_t=&amp;nbsp;&amp;nbsp;&amp;nbsp; compress(algorithm,' and');&lt;/P&gt;&lt;P&gt; do _i=1 to lengthn(_t);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ts=substr(_t,_i,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if&amp;nbsp; findc(category,strip(_ts))=0 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; result='FALSE';&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; 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; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;result='TRUE';&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;else if findw(algorithm,'or')&amp;gt;0 then do;&lt;/P&gt;&lt;P&gt;_t=&amp;nbsp;&amp;nbsp;&amp;nbsp; compress(algorithm,' or');&lt;/P&gt;&lt;P&gt; do _i=1 to lengthn(_t);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ts=substr(_t,_i,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if findc(category,strip(_ts))&amp;gt;0 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; result='TRUE';&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; 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; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;result='FALSE';&lt;/P&gt;&lt;P&gt;END;&lt;/P&gt;&lt;P&gt;OUTPUT;&lt;/P&gt;&lt;P&gt;drop _:;&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 print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 14:27:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108008#M22465</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-07-16T14:27:45Z</dc:date>
    </item>
    <item>
      <title>Re: Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108009#M22466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;An update supposedly working on multiple letter evaluation:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id algorithm :&amp;amp;$10. category :$8.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 B and C&amp;nbsp;&amp;nbsp; ABD &lt;/P&gt;&lt;P&gt;2 B and C&amp;nbsp;&amp;nbsp; ABC &lt;/P&gt;&lt;P&gt;3 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; ABC &lt;/P&gt;&lt;P&gt;4 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; AB&amp;nbsp; &lt;/P&gt;&lt;P&gt;5 BC or DA&amp;nbsp; ABCDE&lt;/P&gt;&lt;P&gt;6 BC and DA&amp;nbsp; ABCDE&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;length result $8.;&lt;/P&gt;&lt;P&gt;if findw(algorithm,'and')&amp;gt;0 then do;&lt;/P&gt;&lt;P&gt;_t=&amp;nbsp;&amp;nbsp;&amp;nbsp; compress(algorithm,'and');&lt;/P&gt;&lt;P&gt; do _i=1 to countw(_t);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ts=scan(_t,_i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if&amp;nbsp; find(category,strip(_ts))=0 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; result='FALSE';&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; 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; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;result='TRUE';&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;else if findw(algorithm,'or')&amp;gt;0 then do;&lt;/P&gt;&lt;P&gt;_t=&amp;nbsp;&amp;nbsp;&amp;nbsp; compress(algorithm,'or');&lt;/P&gt;&lt;P&gt; do _i=1 to countw(_t);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _ts=scan(_t,_i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if findc(category,strip(_ts))&amp;gt;0 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; result='TRUE';&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; 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; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;result='FALSE';&lt;/P&gt;&lt;P&gt;END;&lt;/P&gt;&lt;P&gt;OUTPUT;&lt;/P&gt;&lt;P&gt;drop _:;&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 print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 14:42:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108009#M22466</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-07-16T14:42:58Z</dc:date>
    </item>
    <item>
      <title>Re: Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108010#M22467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are many ways to do something like this. Here is one way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN style="color: #0000ff;"&gt;ods&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;_all_&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;close&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;ods&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;listing&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;options&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;nocenter&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;/* a test data */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; one;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;infile&lt;/SPAN&gt;&lt;SPAN&gt; cards &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;firstobs&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;missover&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt; cmd $ &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;6&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; var $ &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;8&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;14&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; parm1 $ &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;15&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;25&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; parm2 $ &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;26&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;34&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;cards&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;----+----1----+----2----+----3----+&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;rename name&amp;nbsp;&amp;nbsp; firstname&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;recode tall&amp;nbsp;&amp;nbsp; height&amp;gt;65&amp;nbsp; 1&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;recode tall&amp;nbsp;&amp;nbsp; height&amp;lt;=65 0 &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;filename&lt;/SPAN&gt;&lt;SPAN&gt; cmds &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;temp&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* generate sas code from dataset one to a temporary file */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;_null_&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;length&lt;/SPAN&gt;&lt;SPAN&gt; line $&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;200&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;file&lt;/SPAN&gt;&lt;SPAN&gt; cmds;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;set&lt;/SPAN&gt;&lt;SPAN&gt; one;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;select&lt;/SPAN&gt;&lt;SPAN&gt;(cmd);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;when&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"rename"&lt;/SPAN&gt;&lt;SPAN&gt;) line = &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"rename #var# = #parm1#;"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;when&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"recode"&lt;/SPAN&gt;&lt;SPAN&gt;) line = &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"if #parm1# then #var# = #parm2#;"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;otherwise&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;end&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = tranwrd(line, &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"#var#"&lt;/SPAN&gt;&lt;SPAN&gt;, trimn(var));&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = tranwrd(line, &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"#parm1#"&lt;/SPAN&gt;&lt;SPAN&gt;, trimn(parm1));&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = tranwrd(line, &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"#parm2#"&lt;/SPAN&gt;&lt;SPAN&gt;, trimn(parm2));&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;put&lt;/SPAN&gt;&lt;SPAN&gt; line;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* run the generated code */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; class;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;set&lt;/SPAN&gt;&lt;SPAN&gt; sashelp.class;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%inc&lt;/SPAN&gt;&lt;SPAN&gt; cmds/source2;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;filename&lt;/SPAN&gt;&lt;SPAN&gt; cmds &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;clear&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;/* check */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;print&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;=class;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;/* on lst&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; firstname&amp;nbsp;&amp;nbsp;&amp;nbsp; Sex&amp;nbsp;&amp;nbsp;&amp;nbsp; Age&amp;nbsp;&amp;nbsp;&amp;nbsp; Height&amp;nbsp;&amp;nbsp;&amp;nbsp; Weight&amp;nbsp;&amp;nbsp;&amp;nbsp; tall&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alfred&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 69.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 112.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alice&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 84.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Barbara&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 65.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 98.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN style="color: #008000;"&gt;&amp;nbsp; ...&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 14:43:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108010#M22467</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2012-07-16T14:43:12Z</dc:date>
    </item>
    <item>
      <title>Re: Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108011#M22468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Very interesting thing.&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;PRE&gt;data have;
input id algorithm :&amp;amp;$10. category :$8.;
cards;
1 B and C&amp;nbsp;&amp;nbsp; ABD
2 B and C&amp;nbsp;&amp;nbsp; ABC
3 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; ABC
4 C or D&amp;nbsp;&amp;nbsp;&amp;nbsp; AB 
;
run;
data want(drop=i temp _algorithm);
 set have;
 length temp&amp;nbsp; $ 4 result $ 5;
 _algorithm=algorithm ;
 do i=1 to countw(_algorithm);
&amp;nbsp; temp=scan(_algorithm,i);
&amp;nbsp; if length(temp)=1 then do;
&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; if find(category,strip(temp),'i') then _algorithm=translate(_algorithm,'1',temp);
&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; else _algorithm=translate(_algorithm,'0',temp);
&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;
 end;
 result=ifc( resolve(cats('%sysevalf(',_algorithm,')'))='0','FALSE','TRUE')&amp;nbsp; ;
run;


&lt;/PRE&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 03:38:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108011#M22468</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-07-17T03:38:23Z</dc:date>
    </item>
    <item>
      <title>Re: Make SAS interpret code contained in variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108012#M22469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Wounderful, beutiful, thank you one million.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Had to add follwing to your code because in the real dataset letters can appear several times in the 'category' variable and the second time the loop found the same letter it went a bit bananas.&lt;/P&gt;&lt;P&gt;if length(temp)=1 and temp ne '1' and temp ne '0' then do;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Otherwise I can use the code as is. Perfect.&lt;/P&gt;&lt;P&gt;/T&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 07:49:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Make-SAS-interpret-code-contained-in-variable/m-p/108012#M22469</guid>
      <dc:creator>TTNY</dc:creator>
      <dc:date>2012-07-17T07:49:27Z</dc:date>
    </item>
  </channel>
</rss>

