BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
IrinaN
Fluorite | Level 6

 

Hello. Is there documentation for functions used in SAS EM? For example,I found a function dmnorm in a SAS scoring code for which I can’t find a description in SAS Products documentation.

_normA=dmnorm(_fmtA,32);

Thank you.

Irina.

1 ACCEPTED SOLUTION

Accepted Solutions
DougWielenga
SAS Employee

IrinaN,

 

The short answer is that there is not a catalog for functions that are (generally) only used in SAS Enterprise Miner since these would typically provide no benefit to the user, but if you have questions about what a particular function does, you can look at the code (as you have done) or inquire with SAS Technical Support.   

 

In this case, the DMNORM function you are mention is used for normalizing input field names and values to have no more than 32 characters in a the name and no more than 32 characters in the field. It uses the internal normalized version of the variable for analysis and in the score code it generates but you never would have need of these functions elsewhere.    The normalization in this situation is important because many data management applications/utilities export data with unnecessarily wide fields (e.g. 200+ characters for a Yes/No variable).  Since SAS Enterprise Miner is designed to generate score code and the entire potential width of the field must be stored just in case it is needed, this limit prevents the data from becoming unnecessarily large and it prevents the scorecode from becoming unnecessarily long as both of these will slow processing.   Even if your grouping variables have levels that do not differ prior to the first 32 characters, SAS Enterprise Miner will still keep them distinct but you will have to go back to the code in order to figure out which level each normalized level is assigned to.  This is why we recommend to make sure that you don't use unnecessarily long field names/values, but if you do then make sure they differ in the first 20-25 characters so they will be easily distinguished.  In general the DMNORM function handles all this but it is not a function that would typically be used directly by a user.   

 

I hope this helps!

Doug

View solution in original post

2 REPLIES 2
DougWielenga
SAS Employee

IrinaN,

 

The short answer is that there is not a catalog for functions that are (generally) only used in SAS Enterprise Miner since these would typically provide no benefit to the user, but if you have questions about what a particular function does, you can look at the code (as you have done) or inquire with SAS Technical Support.   

 

In this case, the DMNORM function you are mention is used for normalizing input field names and values to have no more than 32 characters in a the name and no more than 32 characters in the field. It uses the internal normalized version of the variable for analysis and in the score code it generates but you never would have need of these functions elsewhere.    The normalization in this situation is important because many data management applications/utilities export data with unnecessarily wide fields (e.g. 200+ characters for a Yes/No variable).  Since SAS Enterprise Miner is designed to generate score code and the entire potential width of the field must be stored just in case it is needed, this limit prevents the data from becoming unnecessarily large and it prevents the scorecode from becoming unnecessarily long as both of these will slow processing.   Even if your grouping variables have levels that do not differ prior to the first 32 characters, SAS Enterprise Miner will still keep them distinct but you will have to go back to the code in order to figure out which level each normalized level is assigned to.  This is why we recommend to make sure that you don't use unnecessarily long field names/values, but if you do then make sure they differ in the first 20-25 characters so they will be easily distinguished.  In general the DMNORM function handles all this but it is not a function that would typically be used directly by a user.   

 

I hope this helps!

Doug

IrinaN
Fluorite | Level 6

Doug,

I  sometimes convert SAS scoring code to SQL, so I need fully understand the SAS scoring code.  Thank you so much for your answer!

Irina.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to choose a machine learning algorithm

Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 1225 views
  • 2 likes
  • 2 in conversation