<?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: Question on SAS allperm function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74699#M16089</link>
    <description>Although we are still just returning the number of words in the string, I wouldn't code it out the way you describe anyways.  I would create a format from the permutations and use that to assign the groups.  That way you wouldn't even need to create the new "number" variable at all.  You would just use the format in any of the output or proc calls.  Here is how you could replicate that last step.  There are no changes to the proc means call so I did not repeat it.&lt;BR /&gt;
-----------------------------------------------------------&lt;BR /&gt;
data premu2;&lt;BR /&gt;
  set premu;&lt;BR /&gt;
  retain fmtName 'Prem' type 'C';&lt;BR /&gt;
   array Col [6]; &lt;BR /&gt;
   length Start $ 400;&lt;BR /&gt;
   n=length(compress(_type_,"0"));&lt;BR /&gt;
   Label = put(n,z2.);&lt;BR /&gt;
   nfact=fact(n); &lt;BR /&gt;
   do i=1 to nfact;   &lt;BR /&gt;
      rc = LEXPERM(i, of Col&lt;LI&gt;);&lt;BR /&gt;
      Start = catx(' ',of Col&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
      output;&lt;BR /&gt;
   end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc format cntlin=premu2;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
  length new_var $ 200; &lt;BR /&gt;
  new_var = "aa bb";output;&lt;BR /&gt;
  new_var = "bb aa";output; &lt;BR /&gt;
  new_var = "aa bb cc";output; &lt;BR /&gt;
  new_var = "aa cc bb";output; &lt;BR /&gt;
  new_var = "bb aa cc";output; &lt;BR /&gt;
  new_var = "bb cc aa";output; &lt;BR /&gt;
  new_var = "cc aa bb";output; &lt;BR /&gt;
  new_var = "cc bb aa";output; &lt;BR /&gt;
run;&lt;BR /&gt;
data test;&lt;BR /&gt;
  set test;&lt;BR /&gt;
  number = put(new_var,Prem.);&lt;BR /&gt;
run;&lt;/LI&gt;</description>
    <pubDate>Thu, 08 Oct 2009 02:44:09 GMT</pubDate>
    <dc:creator>CurtisMack</dc:creator>
    <dc:date>2009-10-08T02:44:09Z</dc:date>
    <item>
      <title>Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74692#M16082</link>
      <description>Hi I would like to know if SAS can generates all possible permutations of 2, 3, 4, 5 etc..instead of just all permutations of 6 like the code below.&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
  drop i perms;&lt;BR /&gt;
  array x (6) $6 ('a' 'b' 'c' 'd' 'e' 'f'); &lt;BR /&gt;
&lt;BR /&gt;
  /* Create a new variable of the concatenated results */&lt;BR /&gt;
  length new $6;&lt;BR /&gt;
  perms=fact(6); &lt;BR /&gt;
    do i=1 to perms;   &lt;BR /&gt;
      call allperm(i, of x(*));&lt;BR /&gt;
      new=cats(of x(*));&lt;BR /&gt;
      output;&lt;BR /&gt;
    end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc print;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
Many Thanks</description>
      <pubDate>Tue, 06 Oct 2009 22:06:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74692#M16082</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-06T22:06:46Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74693#M16083</link>
      <description>My limited testing of your problem using ALLPERM indicated that ALLPERM must be called with the number of arguments equal to the number of things to be permuted.  You need to use separate arrays and separate calls to ALLPERM.  &lt;BR /&gt;
&lt;BR /&gt;
If this question is related to your other question about "building" IN operator arguments I think you should explain the problem more completely because maybe you don't need all these permutations.&lt;BR /&gt;
&lt;BR /&gt;
Here is an alternative method to generate permutations that may be of some interest.&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
*ods trace on;&lt;BR /&gt;
ods listing close;&lt;BR /&gt;
proc plan ordered;&lt;BR /&gt;
   ods output plan=plan;&lt;BR /&gt;
   factors rep=%sysfunc(fact(1)) i=1 perm;&lt;BR /&gt;
   factors rep=%sysfunc(fact(2)) i=2 perm;&lt;BR /&gt;
   factors rep=%sysfunc(fact(3)) i=3 perm;&lt;BR /&gt;
   factors rep=%sysfunc(fact(4)) i=4 perm;&lt;BR /&gt;
   factors rep=%sysfunc(fact(5)) i=5 perm;&lt;BR /&gt;
   factors rep=%sysfunc(fact(6)) i=6 perm;&lt;BR /&gt;
   run;&lt;BR /&gt;
ods listing;&lt;BR /&gt;
ods trace off;&lt;BR /&gt;
&lt;BR /&gt;
data perm;&lt;BR /&gt;
   set plan;&lt;BR /&gt;
   array x[6] $6 ('a' 'b' 'c' 'd' 'e' 'f'); &lt;BR /&gt;
   array i&lt;LI&gt; i:;&lt;BR /&gt;
   n = n(of i&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
   length perm $6;&lt;BR /&gt;
   do _n_ = 1 to n;&lt;BR /&gt;
      perm = cats(perm,x[i[_n_]]);&lt;BR /&gt;
      end;&lt;BR /&gt;
   run;&lt;BR /&gt;
proc print;&lt;BR /&gt;
   run;&lt;BR /&gt;
proc sql noprint;&lt;BR /&gt;
   select quote(strip(perm)) into :perm1 separated by ' ' from perm where n eq 1;&lt;BR /&gt;
   select quote(strip(perm)) into :perm2 separated by ' ' from perm where n eq 2;&lt;BR /&gt;
   select quote(strip(perm)) into :perm3 separated by ' ' from perm where n eq 3;&lt;BR /&gt;
   select quote(strip(perm)) into :perm4 separated by ' ' from perm where n eq 4;&lt;BR /&gt;
   select quote(strip(perm)) into :perm5 separated by ' ' from perm where n eq 5;&lt;BR /&gt;
   select quote(strip(perm)) into :perm6 separated by ' ' from perm where n eq 6;&lt;BR /&gt;
   quit;&lt;BR /&gt;
   run;&lt;BR /&gt;
%put _user_;&lt;BR /&gt;
[/pre]&lt;/LI&gt;</description>
      <pubDate>Wed, 07 Oct 2009 11:26:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74693#M16083</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2009-10-07T11:26:28Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74694#M16084</link>
      <description>Merci beaucoup data _null_; &lt;BR /&gt;
&lt;BR /&gt;
This question is related to an earlier question &lt;BR /&gt;
&lt;BR /&gt;
I do need all permutations to complete this task&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
set test;&lt;BR /&gt;
if new_var in ("aa bb","bb aa") then number='01';&lt;BR /&gt;
if new_var in ("aa bb cc","aa cc bb","bb aa cc","bb cc aa","cc aa bb","cc bb aa") then number='02';&lt;BR /&gt;
and so on.&lt;BR /&gt;
&lt;BR /&gt;
and currently I doing it with hundreds of if then...if then....with all combinations for 2, and 3 already but the scope is just too much when I move on to 4, 5 and 6. I hoping someone could show me how to do this without resort to thousands of if then...if then statement.&lt;BR /&gt;
&lt;BR /&gt;
Have a great day &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Wed, 07 Oct 2009 23:52:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74694#M16084</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-07T23:52:52Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74695#M16085</link>
      <description>This is thinking a little outside of the box, and I don't completely understand your problem, but the following would work in your example:&lt;BR /&gt;
-----------------------------------------&lt;BR /&gt;
data test;&lt;BR /&gt;
  set test;&lt;BR /&gt;
  number = put(countw(new_var) - 1,Z2.);&lt;BR /&gt;
run;&lt;BR /&gt;
------------------------------------------------------&lt;BR /&gt;
Are you really just getting a count of words in the string?</description>
      <pubDate>Thu, 08 Oct 2009 00:14:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74695#M16085</guid>
      <dc:creator>CurtisMack</dc:creator>
      <dc:date>2009-10-08T00:14:31Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74696#M16086</link>
      <description>Hi CurtisMack, what I intend is to capture all possible variations of aa bb cc dd ee ff in groups of 2, 3, 4, 5 and 6 which exists in my data to assign a group number. So far the hurdles are&lt;BR /&gt;
&lt;BR /&gt;
1) Generates all permutations of these 6 words in a dataset like&lt;BR /&gt;
&lt;BR /&gt;
Col1  Col2  Col3  Col4 ... Perm1     Perm2   Perm3    Perm4   Perm5    Perm6  ....&lt;BR /&gt;
aa     bb                         aa,bb      bb,aa&lt;BR /&gt;
aa     bb     cc                aa,bb,cc| aa,cc,bb|bb,aa,cc|bb,cc,aa|cc,aa,bb|cc,bb,aa&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
.&lt;BR /&gt;
aa     bb     cc      dd&lt;BR /&gt;
&lt;BR /&gt;
and concatenate all the Perm into one string which will be use in the IN("STRING")&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
set test;&lt;BR /&gt;
if new_var in ("aa bb","bb aa") then number='01';&lt;BR /&gt;
if new_var in ("aa bb cc","aa cc bb","bb aa cc","bb cc aa","cc aa bb","cc bb aa") then number='02';&lt;BR /&gt;
and so on.&lt;BR /&gt;
&lt;BR /&gt;
Hope this will clear up some confusion.&lt;BR /&gt;
&lt;BR /&gt;
Thank you</description>
      <pubDate>Thu, 08 Oct 2009 00:50:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74696#M16086</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-08T00:50:35Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74697#M16087</link>
      <description>Unfortunately it still looks like you are trying to determine how many values were included in a particluar permutation.  If that is the case, the code I posted will give you the results you want and you can skip all of the other steps. &lt;BR /&gt;
&lt;BR /&gt;
Although I still don't understand the purpose, here is something I whipped up that will create a dataset like the one you described.  &lt;BR /&gt;
-------------------------------------------&lt;BR /&gt;
data test;&lt;BR /&gt;
  Col1 = "aa";&lt;BR /&gt;
  Col2 = "bb"; &lt;BR /&gt;
  Col3 = "cc"; &lt;BR /&gt;
  Col4 = "dd"; &lt;BR /&gt;
  Col5 = "ee"; &lt;BR /&gt;
  Col6 = "ff";&lt;BR /&gt;
output; &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc means data=test chartype;&lt;BR /&gt;
  class Col1 Col2 Col3 Col4 Col5 Col6;&lt;BR /&gt;
  output out = premu(where = (length(compress(_type_,"0")) &amp;gt; 1));&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data premu2;&lt;BR /&gt;
  set premu;&lt;BR /&gt;
   array Col [6]; &lt;BR /&gt;
   array Prem [%sysfunc(fact(6))] $ 400;&lt;BR /&gt;
   n=length(compress(_type_,"0"));&lt;BR /&gt;
   nfact=fact(n); &lt;BR /&gt;
   do i=1 to nfact;   &lt;BR /&gt;
      rc = LEXPERM(i, of Col&lt;LI&gt;);&lt;BR /&gt;
      Prem(i) = catx(' ',of Col&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
   end;&lt;BR /&gt;
&lt;BR /&gt;
run;&lt;/LI&gt;</description>
      <pubDate>Thu, 08 Oct 2009 01:36:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74697#M16087</guid>
      <dc:creator>CurtisMack</dc:creator>
      <dc:date>2009-10-08T01:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74698#M16088</link>
      <description>Brilliant!! That is exactly what I needed, is there a way to code up the 57 lines without resorting to if then...if then....57 times CurtisMack?&lt;BR /&gt;
&lt;BR /&gt;
Ta</description>
      <pubDate>Thu, 08 Oct 2009 02:15:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74698#M16088</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-08T02:15:30Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74699#M16089</link>
      <description>Although we are still just returning the number of words in the string, I wouldn't code it out the way you describe anyways.  I would create a format from the permutations and use that to assign the groups.  That way you wouldn't even need to create the new "number" variable at all.  You would just use the format in any of the output or proc calls.  Here is how you could replicate that last step.  There are no changes to the proc means call so I did not repeat it.&lt;BR /&gt;
-----------------------------------------------------------&lt;BR /&gt;
data premu2;&lt;BR /&gt;
  set premu;&lt;BR /&gt;
  retain fmtName 'Prem' type 'C';&lt;BR /&gt;
   array Col [6]; &lt;BR /&gt;
   length Start $ 400;&lt;BR /&gt;
   n=length(compress(_type_,"0"));&lt;BR /&gt;
   Label = put(n,z2.);&lt;BR /&gt;
   nfact=fact(n); &lt;BR /&gt;
   do i=1 to nfact;   &lt;BR /&gt;
      rc = LEXPERM(i, of Col&lt;LI&gt;);&lt;BR /&gt;
      Start = catx(' ',of Col&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
      output;&lt;BR /&gt;
   end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc format cntlin=premu2;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
  length new_var $ 200; &lt;BR /&gt;
  new_var = "aa bb";output;&lt;BR /&gt;
  new_var = "bb aa";output; &lt;BR /&gt;
  new_var = "aa bb cc";output; &lt;BR /&gt;
  new_var = "aa cc bb";output; &lt;BR /&gt;
  new_var = "bb aa cc";output; &lt;BR /&gt;
  new_var = "bb cc aa";output; &lt;BR /&gt;
  new_var = "cc aa bb";output; &lt;BR /&gt;
  new_var = "cc bb aa";output; &lt;BR /&gt;
run;&lt;BR /&gt;
data test;&lt;BR /&gt;
  set test;&lt;BR /&gt;
  number = put(new_var,Prem.);&lt;BR /&gt;
run;&lt;/LI&gt;</description>
      <pubDate>Thu, 08 Oct 2009 02:44:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74699#M16089</guid>
      <dc:creator>CurtisMack</dc:creator>
      <dc:date>2009-10-08T02:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74700#M16090</link>
      <description>If you really do need those if statements written out, this is a way to do it using Call execute.  It could be done a number of other ways such as pseudo macro arrays, or using the SCL OPEN statement in SYSFUNC calls, but I think this is the most straight forward.  Call Execute generates SAS code that is executed once the dataset is complete.&lt;BR /&gt;
-------------------------------------------- &lt;BR /&gt;
&lt;BR /&gt;
data _null_;&lt;BR /&gt;
  set premu end = finished;&lt;BR /&gt;
  if _n_ = 1 then do;&lt;BR /&gt;
    call execute ('data test; set test;');&lt;BR /&gt;
  end;&lt;BR /&gt;
   array Col [6]; &lt;BR /&gt;
   length IfStr $ 32767;&lt;BR /&gt;
   array Prem [%sysfunc(fact(6))] $ 400;&lt;BR /&gt;
   n=length(compress(_type_,"0"));&lt;BR /&gt;
   nfact=fact(n); &lt;BR /&gt;
   do i=1 to nfact;   &lt;BR /&gt;
      rc = LEXPERM(i, of Col&lt;LI&gt;);&lt;BR /&gt;
      Prem(i) = catx(' ',of Col&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
   end;&lt;BR /&gt;
   number = put(n,Z2.);&lt;BR /&gt;
   IfStr = 'if new_var in ("'||catx('","',of Prem&lt;/LI&gt;&lt;LI&gt;)||'") then number = "' || number || '";';&lt;BR /&gt;
   call execute(IfStr);&lt;BR /&gt;
   if finished then do;&lt;BR /&gt;
     call execute ('run;');&lt;BR /&gt;
   end;&lt;BR /&gt;
run;&lt;/LI&gt;</description>
      <pubDate>Thu, 08 Oct 2009 02:52:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74700#M16090</guid>
      <dc:creator>CurtisMack</dc:creator>
      <dc:date>2009-10-08T02:52:05Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74701#M16091</link>
      <description>This is way beyond what I expected, thank you so much CurtisMack, I have learned a great deal from you today, the way I envisage when you gave me the code earlier is something along the line using proc sql and arrays.&lt;BR /&gt;
&lt;BR /&gt;
Cheers</description>
      <pubDate>Thu, 08 Oct 2009 02:59:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74701#M16091</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-08T02:59:46Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74702#M16092</link>
      <description>Just out of curiosity, I have never used SCL before what would be an example if I were to do this in SCL? &lt;BR /&gt;
&lt;BR /&gt;
Ta</description>
      <pubDate>Thu, 08 Oct 2009 03:02:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74702#M16092</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-10-08T03:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: Question on SAS allperm function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74703#M16093</link>
      <description>SCL is a another of the many sub-languages in SAS.  It was originally created for use in the AF/Frame world, but it can be very useful in base SAS programming.  I find it particularly usefull when you need to read a small SAS data set, but you are either already in a Data Step, or are in the MACRO environment.  This isn't the place to give you a lesson on how to use it, but here is the same solution implimented using it.  I find the code much easier to read than the alternatives:&lt;BR /&gt;
---------------------------------------------------------------------------&lt;BR /&gt;
data premu2(keep = IfStr number) ;&lt;BR /&gt;
  set premu;&lt;BR /&gt;
   array Col [6]; &lt;BR /&gt;
   length IfStr $ 32767;&lt;BR /&gt;
   array Prem [%sysfunc(fact(6))] $ 400;&lt;BR /&gt;
   n=length(compress(_type_,"0"));&lt;BR /&gt;
   nfact=fact(n); &lt;BR /&gt;
   do i=1 to nfact;   &lt;BR /&gt;
      rc = LEXPERM(i, of Col&lt;LI&gt;);&lt;BR /&gt;
      Prem(i) = catx(' ',of Col&lt;/LI&gt;&lt;LI&gt;);&lt;BR /&gt;
   end;&lt;BR /&gt;
   IfStr = '"'||catx('","',of Prem&lt;/LI&gt;&lt;LI&gt;)||'"';&lt;BR /&gt;
   number = put(n,Z2.);&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
options mprint;&lt;BR /&gt;
%macro PermTest;&lt;BR /&gt;
  data test;&lt;BR /&gt;
  set test;&lt;BR /&gt;
  %let Id = %sysfunc(open(premu2,is));&lt;BR /&gt;
  %syscall set(Id); &lt;BR /&gt;
  %do %while(%sysfunc(fetch(&amp;amp;Id)) = 0);&lt;BR /&gt;
    if new_var in(&amp;amp;IfStr) then number = "&amp;amp;number";&lt;BR /&gt;
    else&lt;BR /&gt;
  %end;&lt;BR /&gt;
  %let rc = %sysfunc(close(&amp;amp;Id));&lt;BR /&gt;
    put "Unexpected value of :" new_var;&lt;BR /&gt;
  run;&lt;BR /&gt;
%mend;&lt;BR /&gt;
%PermTest;&lt;BR /&gt;
-------------------------------------------------------------&lt;BR /&gt;
Glad I could be of help.  I am just trying to pass along the benefits I have recieved from many others in other forums.&lt;BR /&gt;
Good Luck!&lt;BR /&gt;
Curtis&lt;/LI&gt;</description>
      <pubDate>Thu, 08 Oct 2009 03:25:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Question-on-SAS-allperm-function/m-p/74703#M16093</guid>
      <dc:creator>CurtisMack</dc:creator>
      <dc:date>2009-10-08T03:25:16Z</dc:date>
    </item>
  </channel>
</rss>

