introduction to data set options
DESCRIPTION
Introduction to Data Set Options. Mark Tabladillo, Ph.D. Software Developer, MarkTab Consulting Associate Faculty, University of Phoenix January 30, 2007. Introduction. Data set options allow features during dataset processing - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/1.jpg)
Introduction to Data Set Options
Mark Tabladillo, Ph.D.Software Developer, MarkTab ConsultingAssociate Faculty, University of Phoenix
January 30, 2007
![Page 2: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/2.jpg)
Introduction
• Data set options allow features during dataset processing
• Most SAS data set options can apply to either input or output SAS data sets in DATA steps or procedure (PROC) steps
• Data set options allow the data step to control variables, observations, security, and data set attributes
![Page 3: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/3.jpg)
Outline
• Define data set options
• Provide examples in four categories
• Discuss data set processing rules
![Page 4: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/4.jpg)
Outline
• Define data set options
• Provide examples in four categories
• Discuss data set processing rules
![Page 5: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/5.jpg)
Definition
• Data set options specify actions that apply only to the SAS data set with which they appear.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 6: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/6.jpg)
Syntax
• Specify a data set option in parentheses after a SAS data set name. To specify several data set options, separate them with spaces.
(option-1=value-1<...option-n=value-n>)
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 7: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/7.jpg)
Outline
• Define data set options
• Provide examples in four categories
• Discuss data set processing rules
![Page 8: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/8.jpg)
Quick Examples
• Data set options enable us to perform operations such as these:– Renaming variables– Selecting only the first or last n observations
for processing– Dropping variables from processing or from
the output data set– Specifying a password for a data set– Adding dataset labels
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 9: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/9.jpg)
Common Option Categories
• Variable Control
• Observation Control
• Security
• Data Set Attributes
![Page 10: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/10.jpg)
Examples Datasetdata work.sales (drop=i randomState);
length state $2 sales 8 randomState 3;do i = 1 to 2500;
randomState = round(rand('gaussian',3,1)+0.5);if randomState in (1,2,3,4,5) then do;
select(randomState);when(1) state='TN';when(2) state='AL';when(3) state='GA';when(4) state='FL';when(5) state='MS';
end;sales = int(rand('gaussian',1000000,500000));output work.sales;
end;end;run;
![Page 11: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/11.jpg)
List of Common Options
http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a000104210.htm
SAS Data Set Option
Description
Variable Control
DROP= Data Set Option
Excludes variables from processing or from output SAS data sets
KEEP= Data Set Option
Specifies variables for processing or for writing to output SAS data sets
RENAME= Data Set Option
Changes the name of a variable
![Page 12: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/12.jpg)
Examples: Variable Control
data work.salesReformat;set work.sales (drop=sales);run;
data work.salesReformat2;set work.sales (keep=state);run;
proc sort data=work.sales (rename=(state=salesState)) out=work.salesReformat3 (drop=sales);by salesState;run;
![Page 13: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/13.jpg)
List of Common Options
http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a000104210.htm
SAS Data Set Option
Description
Observation Control
FIRSTOBS= Data Set Option
Specifies which observation SAS processes first
IN= Data Set Option Creates a variable that indicates whether the data set contributed data to the current observation
OBS= Data Set Option Specifies when to stop processing observations
WHERE= Data Set Option
Selects observations that meet the specified condition
![Page 14: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/14.jpg)
Examples: Observation Control* (obs - firstobs) + 1 = results; data work.selectObs1;
set work.sales (firstobs=1 obs=200);run;
data work.selectObs2;set work.sales (firstobs=200 obs=400);run;
proc print data=work.sales (obs=25);run;
proc freq data=work.sales (firstobs=1);tables state;run;
proc means data=work.sales (obs=max);class state;var sales;run;
![Page 15: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/15.jpg)
Examples: Observation Control
data work.combineObs1;set work.selectObs1 (in=in1) work.selectObs2 (in=in2);length source $12;if in1 then source = 'Dataset One';else if in2 then source = 'Dataset Two';run;
data work.combineObs2;set work.selectObs1 (in=in1) work.selectObs2 (in=in2);if in1 and in2 then output;run;
![Page 16: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/16.jpg)
List of Common Options
http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a000104210.htm
SAS Data Set Option Description
Security ALTER= Data Set Option Assigns an alter password to a SAS file and enables access to a password-protected SAS file
ENCRYPT= Data Set Option
Encrypts SAS data files
PW= Data Set Option Assigns a read, write, or alter password to a SAS file and enables access to a password-protected SAS file
READ= Data Set Option Assigns a read password to a SAS file and enables access to a read-protected SAS file
WRITE= Data Set Option Assigns a write password to a SAS file and enables access to a write-protected SAS file
![Page 17: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/17.jpg)
Examples: Securitydata work.secure1 (alter=NoErrors);
set work.sales;run;
data work.secure2;set work.sales (alter=NoErrors);run;
* Note: A SAS password does not control access to a SAS file beyond the SAS system. You should use the operating system-supplied utilities and file-system security controls in order to control access to SAS files outside of SAS.;
data work.secure3 (encrypt=yes pw=Scramble);set work.sales;run;
proc sort data=work.secure3 (pw=scramble) out=work.secure4;by state sales;run;
![Page 18: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/18.jpg)
List of Common Options
http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a000104210.htm
SAS Data Set Option
Description
Data Set Attributes
COMPRESS= Data Set Option
Controls the compression of observations in an output SAS data set
GENMAX= Data Set Option
Requests generations for a data set and specifies the maximum number of versions
INDEX= Data Set Option
Defines indexes when a SAS data set is created
LABEL= Data Set Option
Specifies a label for the SAS data set
![Page 19: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/19.jpg)
Examples: Data Set Attributes
data work.compress1 (compress=yes label="Attempt at Compression");set work.sales;run;
data work.masterSalesDataset (genmax=3);set work.sales;run;
data work.masterSalesDataset;set work.masterSalesDataset work.selectObs1;run;
data work.masterSalesDataset;set work.sales work.selectObs1;run;
![Page 20: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/20.jpg)
Outline
• Define data set options
• Provide examples in four categories
• Discuss data set processing rules
![Page 21: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/21.jpg)
Input and Output Datasets
• If a data set option is associated with an input data set, the action applies to the data set that is being read.
• If the option appears in the DATA statement or after an output data set specification in a PROC step, SAS applies the action to the output data set.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 22: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/22.jpg)
Input and Output Datasets
data _null_;run;
data;run;
data _null_;set _null_;if _n_ ge 0 then put 'hello';run;
data _null_;if _n_ ge 0 then put 'hello';set _null_;run;
![Page 23: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/23.jpg)
Order of Execution
• When data set options appear on both input and output data sets in the same DATA or PROC step, SAS applies data set options to input data sets before it evaluates programming statements or before it applies data set options to output data sets.
• Likewise, data set options that are specified for the data set being created are applied after programming statements are processed.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 24: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/24.jpg)
Order of Execution
data work.salesReformat4 (rename=(sales=monthlySales));set work.sales;sales = sales/12;run;
data work.salesReformat5;set work.sales (rename=(sales=monthlySales));monthlySales = monthlySales/12;run;
![Page 25: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/25.jpg)
Specification Conflicts
• In some instances, data set options conflict when they are used in the same statement. For example, you cannot specify both the DROP= and KEEP= options for the same variable in the same statement.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 26: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/26.jpg)
Statement Definition
• A SAS statement is a series of items that may include keywords, SAS names, special characters, and operators.
• All SAS statements end with a semicolon.
• A SAS statement either requests SAS to perform an operation or gives information to the system.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612375.htm
![Page 27: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/27.jpg)
Timing Conflicts
• Timing can also be an issue in some cases. For example, if using KEEP= and RENAME= on a data set specified in the SET statement, KEEP= needs to use the original variable names, because SAS will process KEEP= before the data set is read. The new names specified in RENAME= will apply to the programming statements that follow the SET statement.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 28: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/28.jpg)
Timing Conflicts
proc sort data=work.sales (keep=sales state rename=(sales=monthlySales))
out=work.salesReformat6;by state monthlySales;run;
proc sort data=work.sales (rename=(sales=monthlySales) keep=sales state)
out=work.salesReformat7;by state monthlySales;run;
![Page 29: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/29.jpg)
Overriding System Options
• Many system options and data set options share the same name and have the same function.
• The data set option overrides the system option for the data set in the step in which it appears.
• System options remain in effect for all DATA and PROC steps in a SAS job or session, unless they are respecified.
http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a002612367.htm
![Page 30: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/30.jpg)
Conclusion
• DATA set options allow features during data step processing
• The SAS System Documentation provides specific details on the syntax
![Page 31: Introduction to Data Set Options](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813615550346895d9d8b6a/html5/thumbnails/31.jpg)
Contact Information
• Mark TabladilloMarkTab Consultinghttp://www.marktab.com/