Previous Page | Next Page

Statements

DATA Statement



Begins a DATA step and provides names for any output SAS data sets, views, or programs.
Valid: in a DATA step
Category: File-handling
Type: Declarative

Syntax
Without Arguments
Arguments
Details
Using the DATA Statement
Using Both a READ and an ALTER Password
[1]Creating an Output Data Set
[2]When Not Creating a Data Set
[3]Creating a DATA Step View
[4]Creating a Stored Compiled DATA Step Program
[5]Describing a DATA Step View
[6]Executing a Stored Compiled DATA Step Program
Examples
Example 1: Creating Multiple Data Files and Using Data Set Options
Example 2: Creating Input DATA Step Views
Example 3: Creating a View and a Data File
Example 4: Storing and Executing a Compiled Program
Example 5: Creating a Custom Report
Example 6: Using a Password with a Stored Compiled DATA Step Program
Example 7: Displaying Nesting Levels
See Also

Syntax

[1]DATA <data-set-name-1 <(data-set-options-1)>>
<... data-set-name-n <(data-set-options-n)>> </ <DEBUG> <NESTING> <STACK = stack-size>> <NOLIST>;
[2]DATA _NULL_ </ <DEBUG> <NESTING> <STACK = stack-size>> <NOLIST>;
[3]DATA view-name <data-set-name-1 <(data-set-options-1)>>
<... data-set-name-n <(data-set-options-n)>> /
VIEW=view-name <(<password-option><SOURCE=source-option>)> <NESTING> <NOLIST>;
[4]DATA data-set-name / PGM=program-name <(<password-option><SOURCE=source-option>)> <NESTING> <NOLIST>;
[5]DATA VIEW=view-name <(password-option)> <NOLIST>;
DESCRIBE;
[6]DATA PGM=program-name <(password-option)> <NOLIST>;
<DESCRIBE;>
<REDIRECT INPUT | OUTPUT old-name-1 = new-name-1<... old-name-n = new-name-n>;>
<EXECUTE;>


Without Arguments

If you omit the arguments, the DATA step automatically names each successive data set that you create as DATAn, where n is the smallest integer that makes the name unique.


Arguments

data-set-name

names the SAS data file or DATA step view that the DATA step creates. To create a DATA step view, you must specify at least one data-set-name and that data-set-name must match view-name.

Restriction: data-set-name must conform to the rules for SAS names, and additional restrictions might be imposed by your operating environment.
Tip: You can execute a DATA step without creating a SAS data set. See Creating a Custom Report for an example. For more information, see [2]When Not Creating a Data Set.
See also: For details about the types of SAS data set names and when to use each type, see Names in the SAS Language in SAS Language Reference: Concepts.
(data-set-options)

specifies optional arguments that the DATA step applies when it writes observations to the output data set.

See also: Definition of Data Set Options for more information and SAS Data Set Options for a list of data set options .
Featured in: Creating Multiple Data Files and Using Data Set Options
/ DEBUG

enables you to debug your program interactively by helping to identify logic errors, and sometimes data errors.

/ NESTING

specifies that a note will be printed to the SAS log for the beginning and end of each DO-END and SELECT-END nesting level. This option enables you to debug mismatched DO-END and SELECT-END statements and is particularly useful in large programs where the nesting level is not obvious.

/ STACK=stack-size

specifies the maximum number of nested LINK statements.

_NULL_

specifies that SAS does not create a data set when it executes the DATA step.

VIEW=view-name

names a view that the DATA step uses to store the input DATA step view.

Restriction: view-name must match one of the data set names.
Restriction: SAS creates only one view in a DATA step.
Tip: If you specify additional data sets in the DATA statement, SAS creates these data sets when the view is processed in a subsequent DATA or PROC step. Views have the capability of generating other data sets at the time the view is executed.
Tip: SAS macro variables resolve when the view is created. Use the SYMGET function to delay macro variable resolution until the view is processed.
Featured in: Creating Input DATA Step Views and Creating a View and a Data File
password-option

assigns a password to a stored compiled DATA step program or a DATA step view. The following password options are available:

ALTER=alter-password

assigns an alter password to a SAS data file. The password allows you to protect or replace a stored compiled DATA step program or a DATA step view.

Requirement: If you use an ALTER password in creating a stored compiled DATA step program or a DATA step view, an ALTER password is required to replace the program or view.
Requirement: If you use an ALTER password in creating a stored compiled DATA step program or a DATA step view, an ALTER password is required to execute a DESCRIBE statement.
Alias: PROTECT=
READ=read-password

assigns a read password to a SAS data file. The password allows you to read or execute a stored compiled DATA step program or a DATA step view.

Requirement: If you use a READ password in creating a stored compiled DATA step program or a DATA step view, a READ password is required to execute the program or view.
Requirement: If you use a READ password in creating a stored compiled DATA step program or a DATA step view, a READ password is required to execute DESCRIBE and EXECUTE statements. If you use an invalid password, SAS will execute the DESCRIBE statement.
Tip: If you use a READ password in creating a stored compiled DATA step program or a DATA step view, no password is required to replace the program or view.
Alias: EXECUTE=
PW=password

assigns a READ and ALTER password, both having the same value.

SOURCE=source-option

specifies one of the following source options:

SAVE

saves the source code that created a stored compiled DATA step program or a DATA step view.

ENCRYPT

encrypts and saves the source code that created a stored compiled DATA step program or a DATA step view.

Tip: If you encrypt source code, use the ALTER password option as well. SAS issues a warning message if you do not use ALTER.
NOSAVE

does not save the source code.

CAUTION:
If you use the NOSAVE option for a DATA step view, the view cannot be migrated or copied from one version of SAS to another version.   [cautionend]
Default: SAVE
PGM=program-name

names the stored compiled program that SAS creates or executes in the DATA step. To create a stored compiled program, specify a slash (/) before the PGM= option. To execute a stored compiled program, specify the PGM= option without a slash (/).

Tip: SAS macro variables resolve when the stored program is created. Use the SYMGET function to delay macro variable resolution until the view is processed.
Featured in: Storing and Executing a Compiled Program
NOLIST

suppresses the output of all variables to the SAS log when the value of _ERROR_ is 1.

Restriction: NOLIST must be the last option in the DATA statement.

Details


Using the DATA Statement

The DATA step begins with the DATA statement. You use the DATA statement to create the following types of output: SAS data sets, data views, and stored programs. You can specify more than one output in a DATA statement. However, only one of the outputs can be a data view. You create a view by specifying the [3]VIEW= option and a stored program by specifying the [4]PGM=option.


Using Both a READ and an ALTER Password

If you use both a READ and an ALTER password in creating a stored compiled DATA step program or a DATA step view, the following items apply:


[1]Creating an Output Data Set

Use the DATA statement to create one or more output data sets. You can use data set options to customize the output data set. The following DATA step creates two output data sets, example1 and example2. It uses the data set option DROP to prevent the variable IDnumber from being written to the example2 data set.

data example1 example2 (drop=IDnumber);
   set sample;
   . . .more SAS statements. . .
run; 


[2]When Not Creating a Data Set

Usually, the DATA statement specifies at least one data set name that SAS uses to create an output data set. However, when the purpose of a DATA step is to write a report or to write data to an external file, you might not want to create an output data set. Using the keyword _NULL_ as the data set name causes SAS to execute the DATA step without writing observations to a data set. This example writes to the SAS log the value of Name for each observation. SAS does not create an output data set.

data _NULL_;
   set sample;
   put Name ID;
run;


[3]Creating a DATA Step View

You can create DATA step views and execute them at a later time. The following DATA step example creates a DATA step view. It uses the SOURCE=ENCRYPT option to both save and encrypt the source code.

data phone_list / view=phone_list (source=encrypt);
   set customer_list;
   . . .more SAS statements. . . 
run;

For more information about DATA step views, see SAS Data Views in SAS Language Reference: Concepts.


[4]Creating a Stored Compiled DATA Step Program

The ability to compile and store DATA step programs allows you to execute the stored programs later. Stored compiled DATA step programs can reduce processing costs by eliminating the need to compile DATA step programs repeatedly. The following DATA step example compiles and stores a DATA step program. It uses the ALTER password option, which allows the user to replace an existing stored program, and to protect the stored compiled program from being replaced.

data testfile / pgm=stored.test_program (alter=sales);
   set sales_data;
   . . .more SAS statements. . .
run;

For more information about stored compiled DATA step programs, see Stored Compiled DATA Step Programs in SAS Language Reference: Concepts.


[5]Describing a DATA Step View

The following example uses the DESCRIBE statement in a DATA step view to write a copy of the source code to the SAS log.

data view=inventory;
   describe;
run;  

For information about the DESCRIBE statement, see the DESCRIBE Statement.


[6]Executing a Stored Compiled DATA Step Program

The following example executes a stored compiled DATA step program. It uses the DESCRIBE statement to write a copy of the source code to the SAS log.

libname stored 'SAS library';

data pgm=stored.employee_list;
   describe;
   execute;
run;

For information about the DESCRIBE statement, see the DESCRIBE Statement. For information about the EXECUTE statement, see the EXECUTE Statement.


Examples


Example 1: Creating Multiple Data Files and Using Data Set Options

This DATA statement creates more than one data set, and it changes the contents of the output data sets:

data error (keep=subject date weight)
     fitness(label='Exercise Study' 
             rename=(weight=pounds));

The ERROR data set contains three variables. SAS assigns a label to the FITNESS data set and renames the variable weight to pounds.


Example 2: Creating Input DATA Step Views

This DATA step creates an input DATA step view instead of a SAS data file:

libname ourlib 'SAS-library';

data ourlib.test / view=ourlib.test;
   set ourlib.fittest;
   tot=sum(of score1-score10);
run;


Example 3: Creating a View and a Data File

This DATA step creates an input DATA step view named THEIRLIB.TEST and an additional temporary SAS data set named SCORETOT:

libname ourlib 'SAS-library-1';
libname theirlib 'SAS-library-2';

data theirlib.test scoretot
   / view=theirlib.test;
   set ourlib.fittest;
   tot=sum(of score1-score10);
run;

SAS does not create the data file SCORETOT until a subsequent DATA or PROC step processes the view THEIRLIB.TEST.


Example 4: Storing and Executing a Compiled Program

The first DATA step produces a stored compiled program named STORED.SALESFIG:

libname in 'SAS-library-1 ';
libname stored 'SAS-library-2 ';

data salesdata / pgm=stored.salesfig;
   set in.sales;
   qtr1tot=jan+feb+mar;
run;

SAS creates the data set SALESDATA when it executes the stored compiled program STORED.SALESFIG.

data pgm=stored.salesfig;
run;


Example 5: Creating a Custom Report

The second DATA step in this program produces a custom report and uses the _NULL_ keyword to execute the DATA step without creating a SAS data set:

data sales;
   input dept : $10. jan feb mar;
   datalines;
shoes 4344 3555 2666
housewares 3777 4888 7999
appliances 53111 7122 41333
;

data _null_;
   set sales;
   qtr1tot=jan+feb+mar;
   put 'Total Quarterly Sales: ' 
       qtr1tot dollar12.;
run;


Example 6: Using a Password with a Stored Compiled DATA Step Program

The first DATA step creates a stored compiled DATA step program called STORED.ITEMS. This program includes the ALTER password, which limits access to the program.

libname stored 'SAS-library';

data employees / pgm=stored.items (alter=klondike);
   set sample;
   if TotalItems > 200 then output;
   run; 

This DATA step executes the stored compiled DATA step program STORED.ITEMS. It uses the DESCRIBE statement to print the source code to the SAS log. Because the program was created with the ALTER password, you must use the password if you use the DESCRIBE statement. If you do not enter the password, SAS will prompt you for it.

data pgm=stored.items (alter=klondike);
   describe;
   execute;
run;


Example 7: Displaying Nesting Levels

The following program has two nesting levels. SAS will generate four log messages, one begin and end message for each nesting level.

data _null_ /nesting;
   do i = 1 to 10;
      do j = 1 to 5;
         put i= j=;
      end;
   end;
run;

Nesting Level Debug (partial SAS log)

6    data _null_ /nesting;
7       do i = 1 to 10;
           -
           719
NOTE 719-185: *** DO begin level 1 ***.

8          do j = 1 to 5;
              -
              719
NOTE 719-185: *** DO begin level 2 ***.

9             put i= j=;
10         end;
           ---
           720
NOTE 720-185: *** DO end level 2 ***.

11      end;
        ---
        720
NOTE 720-185: *** DO end level 1 ***.

12   run;

See Also

Statements:

DESCRIBE Statement

EXECUTE Statement

LINK Statement

Definition of Data Set Options

Previous Page | Next Page | Top of Page