<?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: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY. in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972546#M6530</link>
    <description>&lt;P&gt;That error message would appear if you call a function incorrectly. For example, if you try to call it without the first argument, you will get that error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;y = ffss_classify();    /* ERROR: A required argument is missing.... */
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So look at the code where the function is CALLED, and make sure you include the correct number of input arguments.&lt;/P&gt;</description>
    <pubDate>Wed, 13 Aug 2025 09:28:14 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2025-08-13T09:28:14Z</dc:date>
    <item>
      <title>ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972537#M6529</link>
      <description>&lt;P&gt;I defined an IML module named FFSS_CLASSIFY. It originally had much more code than shown below, but I removed everything except the start/finish framework and the reset, load module, and store module environment to simplify my question. The question is: why am I getting the error "&lt;STRONG&gt;ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.&lt;/STRONG&gt;"? The code&amp;nbsp; below does not generate any errors, but neither does it do anything useful. Once I start to uncomment the parameters, errors show up and I cannot understand why. If I uncomment the reset, load, or store statements, errors show up. Please tell me that there is an easy solution so that I can watch my fingers dance on the keyboard once again.&lt;/P&gt;
&lt;P&gt;TYVM, Ross&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc iml ;
/* reset storage=featclus.featclus ; */
/* load module=_all_ ; */

start ffss_classify( data       
/*                    , m          */
/*                    , p           */
/*                    , dsn_ideals  */
/*                    , dsn_out  */
/*                    , names_in   */
                   ) ;
                   
   /* empty function body */
   
   return results ;
finish ffss_classify ;

/* store module=ffss_classify ; */
quit ;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Aug 2025 20:44:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972537#M6529</guid>
      <dc:creator>rbettinger</dc:creator>
      <dc:date>2025-08-12T20:44:50Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972546#M6530</link>
      <description>&lt;P&gt;That error message would appear if you call a function incorrectly. For example, if you try to call it without the first argument, you will get that error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;y = ffss_classify();    /* ERROR: A required argument is missing.... */
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So look at the code where the function is CALLED, and make sure you include the correct number of input arguments.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 09:28:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972546#M6530</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2025-08-13T09:28:14Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972571#M6531</link>
      <description>&lt;P&gt;Rick,&lt;/P&gt;
&lt;P&gt;I have attached two SAS programs, each one defining a SAS/IML module. The first one has 5 parameters and has no errors--it is merely the empty body of the module. The second one has 6 parameters and one error: the "required argument is missing". But the second module is not invoked! so I am at a loss to understand why there is any interpretation error. Does SAS/IML check modules for compatibility&amp;nbsp;&lt;EM&gt;prior&lt;/EM&gt; to invocation? If not, why the error? Also, If I remove a module from a SAS/IML catalog (remove=ffss_classify) and then define it again, was any trace of the old module left behind to in some way influence the definition of a new module with the same name?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For your lectorial convenience, here are the modules as embedded code in this question:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options nonotes ;

proc iml ;
reset storage=featclus.featclus ;
load module=_all_ ;

start ffss_classify( data     /* matrix containing feature population, class variable         */
                   , m        /* power parameter m for generalized mean                       */
                   , p        /* power parameter p for Minkowski distance function            */                  
                   , dsn_out  /* output dataset of feature data, actual and pred class values */
                   , names_in /* names of features + class_label in data matrix               */
                   ) ;
   
   return results ;
finish ffss_classify ;

store module=ffss_classify ;
quit ;
---------------------------------------------------------------------------------------------------
 69         options nonotes ;
 70         
 71         proc iml ;
 72         reset storage=featclus.featclus ;
 73         load module=_all_ ;
 ERROR: Too many arguments for function FFSS_CLASSIFY.
 74         
 75         start ffss_classify( data       /* matrix containing feature population, class variable         */
 76                            , m          /* power parameter m for generalized mean                       */
 77                            , p          /* power parameter p for distance function                      */
 78                            , dsn_ideals /* input dataset containing ideal vectors                       */
 79                            , dsn_out    /* output dataset of feature data, actual and pred class values */
 80                            , names_in   /* names of features + class_label in data matrix               */
 81                            ) ;
 174        
 175           return results ;
 176        finish ffss_classify ;
 177        
 178        /* store module=ffss_classify ; */
 179        quit ;
       &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 13 Aug 2025 16:55:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972571#M6531</guid>
      <dc:creator>rbettinger</dc:creator>
      <dc:date>2025-08-13T16:55:31Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972577#M6532</link>
      <description>&lt;P&gt;Update to previous message:&lt;/P&gt;
&lt;P&gt;I changed the name of the IML catalog to&amp;nbsp;&lt;EM&gt;featclus.featclus_new&lt;/EM&gt; from&amp;nbsp;&lt;EM&gt;featclus.featclus &lt;/EM&gt;and submitted the code below.&amp;nbsp;&lt;EM&gt;Mirabile dictu!&lt;/EM&gt; Here is the log of the interpreted modules:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; 
 1          OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 68         
 69         options nonotes nosymbolgen ;
 70         
 71         options nonotes ;
 72         
 73         proc iml ;
 74         reset storage=featclus.featclus_test ;
 75         load module=_all_ ;
 76         
 77         start ffss_classify( data     /* matrix containing feature population, class variable         */
 78                            , m        /* power parameter m for generalized mean                       */
 79                            , p        /* power parameter p for Minkowski distance function            */
 80                            , dsn_out  /* output dataset of feature data, actual and pred class values */
 81                            , names_in /* names of features + class_label in data matrix               */
 82                            ) ;
 83         
 84            return results ;
 85         finish ffss_classify ;
 86         
 87         store module=ffss_classify ;
 88         quit ;
 89         
 90         proc iml ;
 91         reset storage=featclus.featclus_test ;
 92         load module=_all_ ;
 93         
 94         start ffss_classify( data       /* matrix containing feature population, class variable         */
 95                            , m          /* power parameter m for generalized mean                       */
 96                            , p          /* power parameter p for distance function                      */
 97                            , dsn_ideals /* input dataset containing ideal vectors                       */
 98                            , dsn_out    /* output dataset of feature data, actual and pred class values */
 99                            , names_in   /* names of features + class_label in data matrix               */
 100                           ) ;
 101           return results ;
 102        finish ffss_classify ;
 103        
 104        /* store module=ffss_classify ; */
 105        quit ;
 106        
 107        
 108        OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 118        &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So if all that I did was to cause the modules to be stored in a new catalog, does that action suggest that there is something wrong in the IML function that updates modules? I tried "remove module=ffss_classify" before defining the 6-parameter module, but to no avail. Please tell me where I have gone wrong. This error has never happened to me before. Thanks, Ross&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 17:39:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972577#M6532</guid>
      <dc:creator>rbettinger</dc:creator>
      <dc:date>2025-08-13T17:39:21Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972582#M6533</link>
      <description>&lt;OL&gt;
&lt;LI&gt;First, turn on NOTEs with OPTIONS NOTES. This will let you know when certain events happen. For example, you should get the notes&lt;BR /&gt;NOTE: Redefining existing module FFSS_CLASSIFY.&lt;BR /&gt;NOTE: Module FFSS_CLASSIFY defined.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;I'm confused by your written statement:&lt;BR /&gt;&lt;/SPAN&gt;&lt;EM style="font-family: inherit;"&gt;The second one has 6 parameters and one error: the "required argument is missing".&amp;nbsp;&lt;BR /&gt;&lt;/EM&gt;I don't see that error in the log, so I don't know what statement is executing when you see it. Please upload the SAS log(s) associated with the errors you are seeing.&lt;/LI&gt;
&lt;LI&gt;What version of SAS are you running? Insert&amp;nbsp;&lt;STRONG&gt;%put &amp;amp;=SYSVLONG; &lt;/STRONG&gt;into your program so that the result appears in the log.&lt;/LI&gt;
&lt;LI&gt;Without seeing all you code and knowing the order in which you are running various programs, it is hard to guess what is happening. My suspicion is that the one of the stored modules is calling&amp;nbsp;&lt;SPAN&gt;ffss_classify with the old syntax. But that error should only appear if the &lt;SPAN&gt;ffss_classify&amp;nbsp;&lt;/SPAN&gt;is called or if a second function that calls&amp;nbsp;&lt;SPAN&gt;ffss_classify is being stored. You are claiming that neither of these things are happening, so I am stumped.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Try to provide a reproducible example that we can run on our system.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 18:11:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972582#M6533</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2025-08-13T18:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: A required argument is missing in the call to function FFSS_CLASSIFY.</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972616#M6534</link>
      <description>&lt;P&gt;You wrote: "My suspicion is that the one of the stored modules is calling ffss_classify with the old syntax. But that error should only appear if the ffss_classify is called or if a second function that calls ffss_classify is being stored."&lt;/P&gt;
&lt;P&gt;I checked all of my modules and found one that called FFSS_CLASSIFY with 5 parameters and not 6. I updated it and tried to run my code suite again. Then I said to myself, "No more Mr. Nice Guy. It's time for a cold boot" and I ran all of my modules again to update all of them in the catalog. Voila! Things began to work properly again. So I am moving forward. Thank you so much! Ross&lt;/P&gt;</description>
      <pubDate>Thu, 14 Aug 2025 12:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/ERROR-A-required-argument-is-missing-in-the-call-to-function/m-p/972616#M6534</guid>
      <dc:creator>rbettinger</dc:creator>
      <dc:date>2025-08-14T12:14:55Z</dc:date>
    </item>
  </channel>
</rss>

