SAS Institute. The Power to Know

SAS(R) 9.2 Language Reference: Dictionary

space
Previous Page | Next Page

What's New

What's New in the Base SAS 9.2 Language


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


Checkpoint Mode and Restart Mode

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.


Support for ISO 8601 Basic and Extended Time Notations

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.


Support for IPv6

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.


Universal Printing and New TrueType Fonts

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.


WHERE-Expression Processing

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.


DATA Step Java Object

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


Data Set Options

  • The following data set option has a new argument:

    DLDMGACTION=NOINDEX

    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.


Formats

  • The following formats are new:

    $BASE64X

    converts character data to ASCII text using Base 64 encoding.

    $N8601B

    writes ISO 8601 duration, datetime, and interval forms using the basic notations PnYnMnDTnHnMnS and yyyymmddThhmmss.

    $N8601BA

    writes ISO 8601 duration, datetime, and interval forms using the basic notations PyyyymmddThhmmss and yyyymmddThhmmss.

    $N8601E

    writes ISO 8601 duration, datetime, and interval forms using the extended notations PnYnMnDTnHnMnS and yyyy-mm-ddThh:mm:ss.

    $N8601EA

    writes ISO 8601 duration, datetime, and interval forms using the extended notations Pyyyy-mm-ddThh:mm:ss and yyyy-mm-ddThh:mm:ss.

    $N8601EH

    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.

    $N8601EX

    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.

    $N8601H

    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.

    $N8601X

    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.

    B8601DA

    writes date values using the IOS 8601 base notation yyyymmdd.

    B8601DN

    writes the date from a datetime value using the ISO 8601 basic notation yyyymmdd.

    B8601DT

    writes datetime values in the ISO 8601 basic notation yyyymmddThhmmssffffff.

    B8601DZ

    writes datetime values in the Coordinated Universal Time (UTC) time scale using the ISO 8601 datetime and time zone basic notation yyyymmddThhmmss+|-hhmm.

    B8601LZ

    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.

    B8601TM

    writes time values using the ISO 8601 basic notation hhmmssffff.

    B8601TZ

    adjusts time values to the Coordinated Universal Time (UTC) and writes them using the ISO 8601 basic time notation hhmmss+|-hhmm.

    BESTD

    prints numeric values, lining up decimal places for values of similar magnitude, and prints integers without decimals.

    E8601DA

    writes date values using the ISO 8601 extended notation yyyy-mm-dd.

    E8601DN

    writes the date from a SAS datetime value using the ISO 8601 extended notation yyyy-mm-dd.

    E8601DT

    writes datetime values in the ISO 8601 extended notation yyyy-mm-ddThh:mm:ss.ffffff.

    E8601DZ

    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.

    E8601LZ

    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.

    E8601TM

    writes time values using the ISO 8601 extended notation hh:mm:ss.ffffff.

    E8601TZ

    adjusts time values to the Coordinated Universal Time (UTC) and writes the values using the ISO 8601 extended notation hh:mm:ss+|-hh:mm.

    PERCENTN

    produces percentages, using a minus sign for negative values.

    VMSZN

    generates VMS and MicroFocus COBOL zoned numeric data.

  • The following formats were previously documented in other publications and are now part of this document:

    WEEKUw.

    writes a week number in decimal format by using the U algorithm.

    WEEKVw.

    writes a week number in decimal format by using the V algorithm.

    WEEKWw.

    writes a week number in decimal format by using the W algorithm.

  • The following format is enhanced:

    DATEw.

    In addition to writing dates in the form ddmmmyy or ddmmmyyyy, the DATEw. format now writes dates in the form dd-mmm-yyyy.


Functions and CALL Routines

  • The following functions and CALL routines are new:

    ALLCOMB

    generates all combinations of the values of n variables taken k at a time in a minimal change order.

    ALLPERM

    generates all permutations of the values of several variables in a minimal change order.

    ARCOSH

    returns the inverse hyperbolic cosine.

    ARSINH

    returns the inverse hyperbolic sine.

    ARTANH

    returns the inverse hyperbolic tangent.

    CALL ALLCOMB

    generates all combinations of the values of n variables taken k at a time in a minimal change order.

    CALL ALLCOMBI

    generates all combinations of the indices of n objects taken k at a time in a minimal change order.

    CALL GRAYCODE

    generates all subsets of n items in a minimal change order.

    CALL ISO8601_CONVERT

    converts an ISO 8601 interval to datetime and duration values, or converts datetime and duration values to an ISO 8601 interval.

    CALL LEXCOMB

    generates all distinct combinations of the non-missing values of n variables taken k at a time in lexicographic order.

    CALL LEXCOMBI

    generates all combinations of the indices of n objects taken k at a time in lexicographic order.

    CALL LEXPERK

    generates all distinct permutations of the non-missing values of n variables taken k at a time in lexicographic order.

    CALL LEXPERM

    generates all distinct permutations of the non-missing values of several variables in lexicographic order.

    CALL SORTC

    sorts the values of character arguments.

    CALL SORTN

    sorts the values of numeric arguments.

    CATQ

    concatenates character or numeric values by using a delimiter to separate items and by adding quotation marks to strings that contain the delimiter.

    CHAR

    returns a single character from a specified position in a character string.

    CMISS

    counts the number of missing arguments.

    COUNTW

    counts the number of words in a character expression.

    DIVIDE

    returns the result of a division that handles special missing values for ODS output.

    ENVLEN

    returns the length of an environment variable.

    EUCLID

    returns the Euclidean norm of the non-missing arguments.

    FINANCE

    computes financial calculations such as deprecation, maturation, accrued interest, net present value, periodic savings, and internal rates of return.

    FINDW

    searches a character string for a word.

    FIRST

    returns the first character in a character string.

    GCD

    returns the greatest common divisor for one or more integers.

    GEODIST

    returns the geodetic distance between two latitude and longitude coordinates.

    GRAYCODE

    generates all subsets of n items in a minimal change order.

    INTFIT

    returns a time interval that is aligned between two dates.

    INTGET

    returns an interval based on three date or datetime values.

    INTSHIFT

    returns the shift interval that corresponds to the base interval.

    INTTEST

    returns 1 if a time interval is valid, and returns 0 if a time interval is invalid.

    LCM

    returns the smallest multiple that is exactly divisible by every number in a set of numbers.

    LCOMB

    computes the logarithm of the COMB function--that is, the logarithm of the number of combinations of n objects taken r at a time.

    LEXCOMB

    generates all distinct combinations of the non-missing values of n variables taken k at a time in lexicographic order.

    LEXCOMBI

    generates all combinations of the indices of n objects taken k at a time in lexicographic order.

    LEXPERK

    generates all distinct permutations of the non-missing values of n variables taken k at a time in lexicographic order.

    LEXPERM

    generates all distinct permutations of the non-missing values of several variables in lexicographic order.

    LFACT

    computes the logarithm of the FACT (factorial) function.

    LOG1PX

    returns the log of 1 plus the argument.

    LPERM

    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.

    LPNORM

    returns the Lp norm of the second argument and subsequent non-missing arguments.

    MD5

    returns the result of the message digest of a specified string.

    MSPLINT

    returns the ordinate of a monotonicity-preserving interpolating spline.

    RENAME

    renames a member of a SAS library, an external file, or a directory.

    SUMABS

    returns the sum of the absolute values of the non-missing arguments.

    TRANSTRN

    replaces all occurrences of a substring found in a character string if the substring has a value greater than zero.

    WHICHC

    searches for a character value that is equal to the first argument, and returns the index of the first matching value.

    WHICHN

    searches for a numeric value that is equal to the first argument, and returns the index of the first matching value.

    ZIPCITYDISTANCE

    returns the geodetic distance between two zip code locations.

  • The descriptions of the arguments in the following functions are enhanced:

    DOPEN

    opens a directory, and returns a directory identifier value.

    EXIST

    verifies the existence of a SAS library member.

    FOPEN

    opens an external file and returns a file identifier value.

    FEXIST

    verifies the existence of an external file that is associated with a fileref.

    FILENAME

    assigns or deassigns a fileref to an external file, a directory, or an output device.

    FILEREF

    verifies whether a fileref has been assigned for the current SAS session.

    LIBNAME

    assigns or deassigns a libref for a SAS library.

    LIBREF

    verifies that a libref has been assigned.

    MOPEN

    opens a file by directory ID and member name, and returns either the file