| What's New |
| Overview |
The SAS 9.2 Base new features, language elements, and enhancements to the language elements continue to expand the capabilities of SAS:
SAS now supports the next generation Internet Protocol, IPv6, as well as IPv4.
For Universal Printing, 31 new TrueType fonts are available when you install SAS. In addition, Universal Printing now supports Scalable Vector Graphics (SVG), Portable Network Graphics (PNG), and PDFA-1b print output formats.
You can access remote files by using the Secure File Transfer Protocol (SFTP) access method.
SAS now reads and writes ISO 8601 dates, time, and intervals.
In support of batch programming, if a program terminates without completion, the new checkpoint mode enables programs to be resubmitted in restart mode, resuming with the DATA or PROC step that was executing when the program terminated.
In the "Functions and CALL Routines" section there are several new and enhanced functions as well as functions that were previously in other products and that are now part of Base SAS. The functions that moved from the Risk Dimensions product calculate the call and put prices from European options on futures, based on various models. The functions that moved from SAS/ETS return information about various date and time intervals. The functions from SAS High-Performance Forecasting return specific dates.
In a DATA step, you can track the execution of code within a DO group. The DATA statement has an optional argument for you to write a note to the SAS log when the DO statement begins and ends.
New SAS system options enable you to set a default record length, specify options for accessing PDF files, specify values for Scalable Vector Graphics, support the checkpoint mode and the restart mode, and support fonts.
Some of the new features for the DATA step object attributes, operators, and methods remove all items from the hash object without deleting the instance of the hash object, consolidate the FIND and ADD methods into a single method call, return the number of items in the hash object, and specifies a starting key item for iteration.
In previous versions of SAS Language Reference: Dictionary, references to language elements in other publications were included in their respective dictionary for each language element type. For example, you could find a reference for the $BIDI format in the format dictionary entries. You can now find references to language elements that are documented in other publications within each section for the language element types. Online, this section appears just before the dictionary entries for each language element type. In the PDF or print copy, this section appears as the last topic for each language element type.
| SAS System Features |
If a batch program terminates before it completes and it was started in checkpoint mode, the program can be resubmitted in restart mode, resuming with the DATA or PROC step that was executing when the program terminated. DATA and PROC steps that have already completed do not need to be rerun. See "Checkpoint Mode and Restart Mode" in SAS Language Reference: Concepts.
In SAS 9.1.3, the formats and informats that support the ISO 8601 basic and extended time notations were documented in the SAS 9.1.3 XML LIBNAME: User's Guide. These formats and informats have been renamed and are now documented in SAS Language Reference: Dictionary.
The new names clearly distinguish the basic and extended formats and informats. You can see the renamed formats and informats in their respective sections in the topics that follow. In addition, a new CALL routine, IS8601_CONVERT, converts ISO 8601 intervals to datetime and duration values, and datetime and duration values to an ISO 8601 interval.
SAS 9.2 introduces support for the "next generation" of Internet Protocol, IPv6, which is the successor to the current Internet Protocol, IPv4. Rather than replacing IPv4 with IPv6, SAS 9.2 supports both protocols. A primary reason for the new protocol is that the limited supply of 32-bit IPv4 address spaces is being depleted. IPv6 uses a 128-bit address scheme, which provides more IP addresses than IPv4 did.
For more information, see Internet Protocol Version 6 (IPV6) in SAS Language Reference: Concepts.
In SAS 9.2, all Universal Printers and many SAS/GRAPH devices use the FreeType library to render TrueType fonts for output in all of the operating environments that SAS software supports. In addition, by default, many SAS/GRAPH device drivers and all Universal Printers generate output using ODS styles, and these ODS styles use TrueType fonts.
In addition to SAS Monospace and SAS Monospace Bold, 31 new TrueType fonts are made available when you install SAS:
Five Latin fonts compatible with Microsoft
Eight multilingual Unicode fonts
Eight monolingual Asian fonts
New Universal printers include the following:
| PDFA |
produces an archivable PDF compliant with PDF/A-1b . |
| PNG |
produces Portable Network Graphics, which is a raster image format that is designed to replace the older simple GIF and the more complex TIFF format. |
| PNGt |
produces transparent Portable Network Graphics. |
| SVG |
produces Scalable Vector Graphics, which is a language for describing two-dimensional graphics and graphical applications in XML. |
| SVGt |
produces transparent Scalable Vector Graphics. |
| SVGView |
produces Scalable Vector Graphics with controls to scroll through SVG output. |
| SVGZ |
produces compressed Scalable Vector Graphics. |
For more information, see Printing with SAS in SAS Language Reference: Concepts.
In a WHERE expression, the LIKE operator now supports an escape character. The escape character enables you to search for the percent sign (%) and the underscore (_) characters in values. For more information, see Syntax of WHERE Expression in SAS Language Reference: Concepts.
The DATA step component Java object is production software starting with this release of Base SAS.
Documentation for the Java object can be found on the Base Communities page on support.sas.com. Full documentation for the Java object will be available in a future release.
| SAS Language Elements |
The following data set option has a new argument:
automatically repairs the data set without the indexes and integrity constraints, deletes the index file, updates the data file to reflect the disabled indexes and integrity constraints, and limits the data file to be opened only in INPUT mode.
The following formats are new:
converts character data to ASCII text using Base 64 encoding.
writes ISO 8601 duration, datetime, and interval forms using the basic notations PnYnMnDTnHnMnS and yyyymmddThhmmss.
writes ISO 8601 duration, datetime, and interval forms using the basic notations PyyyymmddThhmmss and yyyymmddThhmmss.
writes ISO 8601 duration, datetime, and interval forms using the extended notations PnYnMnDTnHnMnS and yyyy-mm-ddThh:mm:ss.
writes ISO 8601 duration, datetime, and interval forms using the extended notations Pyyyy-mm-ddThh:mm:ss and yyyy-mm-ddThh:mm:ss.
writes ISO 8601 duration, datetime, and interval forms for the extended notations Pyyyy-mm-ddThh:mm:ss and yyyy-mm-ddThh:mm:ss, using a hyphen ( - ) for omitted components.
writes ISO 8601 duration, datetime, and interval forms for the extended notations Pyyyy-mm-ddThh:mm:ss and yyyy-mm-ddThh:mm:ss, using an x for each digit of an omitted component.
writes ISO 8601 duration, datetime, and interval forms PnYnMnDTnHnMnS and yyyy-mm-ddThh:mm:ss, dropping omitted components in duration values and using a hyphen ( - ) for omitted components in datetime values.
writes ISO 8601 duration, datetime, and interval forms PnYnMnDTnHnMnS and yyyy-mm-ddThh:mm:ss, dropping omitted components in duration values and using an x for each digit of an omitted component in datetime values.
writes date values using the IOS 8601 base notation yyyymmdd.
writes the date from a datetime value using the ISO 8601 basic notation yyyymmdd.
writes datetime values in the ISO 8601 basic notation yyyymmddThhmmssffffff.
writes datetime values in the Coordinated Universal Time (UTC) time scale using the ISO 8601 datetime and time zone basic notation yyyymmddThhmmss+|-hhmm.
writes time values as local time by appending a time zone offset difference between the local time and UTC, using the ISO 8601 basic time notation hhmmss+|-hhmm.
writes time values using the ISO 8601 basic notation hhmmssffff.
adjusts time values to the Coordinated Universal Time (UTC) and writes them using the ISO 8601 basic time notation hhmmss+|-hhmm.
prints numeric values, lining up decimal places for values of similar magnitude, and prints integers without decimals.
writes date values using the ISO 8601 extended notation yyyy-mm-dd.
writes the date from a SAS datetime value using the ISO 8601 extended notation yyyy-mm-dd.
writes datetime values in the ISO 8601 extended notation yyyy-mm-ddThh:mm:ss.ffffff.
writes datetime values in the Coordinated Universal Time (UTC) time scale using the ISO 8601 datetime and time zone extended notation yyyy-mm-ddThh:mm:ss+|-hh:mm.
writes time values as local time, appending the Coordinated Universal Time (UTC) offset for the local SAS session, using the ISO 8601 extended time notation hh:mm:ss+|-hh:mm.
writes time values using the ISO 8601 extended notation hh:mm:ss.ffffff.
adjusts time values to the Coordinated Universal Time (UTC) and writes the values using the ISO 8601 extended notation hh:mm:ss+|-hh:mm.
produces percentages, using a minus sign for negative values.
generates VMS and MicroFocus COBOL zoned numeric data.
The following formats were previously documented in other publications and are now part of this document:
The following format is enhanced:
In addition to writing dates in the form ddmmmyy or ddmmmyyyy, the DATEw. format now writes dates in the form dd-mmm-yyyy.
The following functions and CALL routines are new:
generates all combinations of the values of n variables taken k at a time in a minimal change order.
generates all permutations of the values of several variables in a minimal change order.
returns the inverse hyperbolic cosine.
returns the inverse hyperbolic sine.
returns the inverse hyperbolic tangent.
generates all combinations of the values of n variables taken k at a time in a minimal change order.
generates all combinations of the indices of n objects taken k at a time in a minimal change order.
generates all subsets of n items in a minimal change order.
converts an ISO 8601 interval to datetime and duration values, or converts datetime and duration values to an ISO 8601 interval.
generates all distinct combinations of the non-missing values of n variables taken k at a time in lexicographic order.
generates all combinations of the indices of n objects taken k at a time in lexicographic order.
generates all distinct permutations of the non-missing values of n variables taken k at a time in lexicographic order.
generates all distinct permutations of the non-missing values of several variables in lexicographic order.
sorts the values of character arguments.
sorts the values of numeric arguments.
concatenates character or numeric values by using a delimiter to separate items and by adding quotation marks to strings that contain the delimiter.
returns a single character from a specified position in a character string.
counts the number of missing arguments.
counts the number of words in a character expression.
returns the result of a division that handles special missing values for ODS output.
returns the length of an environment variable.
returns the Euclidean norm of the non-missing arguments.
computes financial calculations such as deprecation, maturation, accrued interest, net present value, periodic savings, and internal rates of return.
searches a character string for a word.
returns the first character in a character string.
returns the greatest common divisor for one or more integers.
returns the geodetic distance between two latitude and longitude coordinates.
generates all subsets of n items in a minimal change order.
returns a time interval that is aligned between two dates.
returns an interval based on three date or datetime values.
returns the shift interval that corresponds to the base interval.
returns 1 if a time interval is valid, and returns 0 if a time interval is invalid.
returns the smallest multiple that is exactly divisible by every number in a set of numbers.
computes the logarithm of the COMB function--that is, the logarithm of the number of combinations of n objects taken r at a time.
generates all distinct combinations of the non-missing values of n variables taken k at a time in lexicographic order.
generates all combinations of the indices of n objects taken k at a time in lexicographic order.
generates all distinct permutations of the non-missing values of n variables taken k at a time in lexicographic order.
generates all distinct permutations of the non-missing values of several variables in lexicographic order.
computes the logarithm of the FACT (factorial) function.
returns the log of 1 plus the argument.
computes the logarithm of the PERM function--that is, the logarithm of the number of permutations of n objects, with the option of including r number of elements.
returns the Lp norm of the second argument and subsequent non-missing arguments.
returns the result of the message digest of a specified string.
returns the ordinate of a monotonicity-preserving interpolating spline.
renames a member of a SAS library, an external file, or a directory.
returns the sum of the absolute values of the non-missing arguments.
replaces all occurrences of a substring found in a character string if the substring has a value greater than zero.
searches for a character value that is equal to the first argument, and returns the index of the first matching value.
searches for a numeric value that is equal to the first argument, and returns the index of the first matching value.
returns the geodetic distance between two zip code locations.
The descriptions of the arguments in the following functions are enhanced:
opens a directory, and returns a directory identifier value.
verifies the existence of a SAS library member.
opens an external file and returns a file identifier value.
verifies the existence of an external file that is associated with a fileref.
assigns or deassigns a fileref to an external file, a directory, or an output device.
verifies whether a fileref has been assigned for the current SAS session.
assigns or deassigns a libref for a SAS library.
verifies that a libref has been assigned.
opens a file by directory ID and member name, and returns either the file