10月 252018

The other day I was playing around with the voter registration data for all ~8 million registered voters in North Carolina (yes - this guy knows how to have fun!), and I got to wondering what last names were the most common. I summarized the data by county, and the [...]

The post What is the most common last name in each North Carolina county? appeared first on SAS Learning Post.

2月 192016

With many names, it's difficult to know whether the person is male or female. Let's use the power of analytics to determine which names are the most unisex, based on the number of boys and girls with those names. But, before we get started, here's a picture of my friend […]

The post Which name is more unisex - Jessie or Angel? appeared first on SAS Learning Post.

7月 152011

The rules for SAS names get a little more expansive in SAS 9.3. We have long been able to use arbitrary characters and accented letters in variable names and in the names of some SQL tables. The characters of Asian scripts are also available with the right character encoding. Now the same expanded character set applies to the names of SAS data sets and item stores — but with a few cautions.

Names that aren’t traditional SAS names have to be written as name literals — a quoted string marked with the letter N for name. System options can permit or prohibit the extended use of characters in names. The option is VALIDVARNAME=ANY to allow additional characters in variable names, VALIDVARNAME=V7 to prohibit characters other than ASCII letters, digits, and underscore. In SAS 9.3, the system option VALIDMEMNAME=EXTEND allows special characters in member names. Use VALIDMEMNAME=COMPATIBLE to limit yourself to member names that will work in SAS 9.2 and older versions.

The use of special characters is limited to SAS data sets (including views) and item stores. Catalogs and other member types are still limited to traditional SAS names.

These punctuation characters cannot be used in SAS file names:

/ \ * ? " < > | : -

The null character is also not permitted.

There are restrictions on the use of these characters (so don’t use them if you don’t have to):

% & . # $

Spaces at the beginning or end of a name literal are not included in the member name. Also, like all SAS names, member names are case-insensitive, even when you write them as name literals.

A member name can’t be more than 32 bytes long. Depending on the character encoding, you could be limited to as few as 8 characters.

Here is the big limitation on extended member names, though: they can’t necessarily be used in the interactive environment. From SAS 9.3 System Options: Reference:

The windowing environment supports the extended rules in the Editor, Log, and Output windows when VALIDMEMNAME=EXTEND is set. In most SAS windows, these extended rules are not supported. For example, these rules are not supported in SAS Explorer, the VIEWTABLE window, and windows that you open using the Solutions menu.

The list of incompatibilities attached to the legacy display manager and full-screen windows of the SAS interactive environment is growing, not shrinking, with the new release. Given the issues with names and character encodings, along with other concerns, SAS is marginalizing its interactive environment. I don’t think that means SAS wants us all to switch to batch mode, though that will be necessary for many applications in SAS 9.3. I believe SAS remains committed to interactive users, so it may have an eye toward rebuilding its entire user interface or replacing it with something more contemporary and perhaps more flexible and modular in a future release.