SASTechies info@sastechies.com http://www.sastechies.

com

DATA steps typically create or modify SAS data sets, but they can also be used to produce custom-designed reports. For example, you can use DATA steps to
◦ ◦ ◦ ◦ put your data into a SAS data set compute the values for new variables check for and correct errors in your data produce new SAS data sets by sub-setting, merging, and updating existing data sets.

PROC (procedure) steps typically analyze and process data in the form of a SAS data set, and they sometimes create SAS data sets that contain the results of the procedure. PROC steps control a library of prewritten routines (procedures) that perform tasks on SAS data sets, such as listing, sorting, and summarizing data. For example, you can use PROC steps to
◦ ◦ ◦ ◦ print a report produce descriptive statistics create a tabular report produce plots and charts.

SAS Techies 2009

11/13/09

2

Data numbers; X1=1; x2=2; Run; Proc print data=numbers; Run;

Start of a Datastep Assigning values to x1 x2 End the datastep Issue a Print Procedure to print the dataset numbers End the Run statement

SAS Techies 2009

11/13/09

3

   

   

C, C++, Java like syntax Every Statement ends with ; Datastep starts with the keyword data followed by the dataset name. Datastep ends when run; is found or any other Data or Proc is found else the Status on the window would show “Datastep or Proc Running” It usually begins with a SAS keyword they can begin and end anywhere on a line one statement can continue over several lines several statements can be on a line.

SAS Techies 2009

11/13/09

4

Log would show the entire program with the Run time i.e. Real time and the CPU Time. Any errors or any output with PUT or Macro statements

SAS Techies 2009

11/13/09

5

Output Window would show the output of the Procedure in a Listing or HTML Format, date, time and SAS System message. Results Window would show any results produced Explorer window would show any dataset prepared in that step.

SAS Techies 2009

11/13/09

6

To define a library, you assign it a library name and specify a path Libname libref “C:\temp”; Open the library in Explorer would show all ◦ Datasets ◦ Catalogs ◦ macro compilation ◦ views When you delete a library you delete the reference to SAS engine and Not the Contents at that path. To delete the contents select all of them and delete. Note: libref is 1 to 8 characters long only and remain in effect until you modify them, cancel them, or end your SAS session

SAS Techies 2009

11/13/09

7

SAS file in any library except Work indicates that the SAS file is stored permanently
Permanent SAS Files

Clinic

.

Admit

Clinic

.

Admit2

Temporary SAS File

Temporary SAS File, One-Level Name

Work

.

Test

Test

SAS Techies 2009

11/13/09

8

Datalines / cards statement -- Indicates that data lines follow

SAS Techies 2009

11/13/09

9

Set Statement --Reads an observation from one or more already existing SAS data sets -- used to copy / subset of observations to perform additional operations. Data work.ins; set clinic.insure(where=(weight>150)); if weight > 150 then Overweight=‘Yes’; run;

SAS Techies 2009

11/13/09

10

a SAS data set is a file consisting of two parts: a descriptor portion and a data portion
Data Set Name: CLINIC.INSURE Member Type: DATA Engine: V8 Created: 10:05 Tuesday, March 30, 1999 Observations: 21 Variables: 7 Indexes: 0 Observation Length: 64

 Name  Jones  Laverne   Jaffe  Wilson

 Sex    M   M   F   M

 Age    48   58   .    28

 Weight    128.6   158.3   115.5   170.1

SAS Techies 2009

11/13/09

11

Name -----Policy Total Name

Type ---Num Num Char

Length ----8 8 20

Format --------DOLLAR8.2

Informat -------COMMA10.

Label ------------Policy Number Total Balance Patient Name

Variable names must ---•be 1 to 32 characters in length •begin with a letter (A-Z, including mixed case characters) or an underscore (_) •continue with any combination of numbers, letters, or underscores. A variable's type is either character or numeric.

SAS Techies 2009

11/13/09

12

Description

Default Length

Max Length

Variable Name

<32

32 characters

Value CHAR NUM

8 bytes 8 bytes

32767 (32Kb) any bytes

SAS Techies 2009

11/13/09

13

Variable Type and Missing Values A variable's type determines how SAS software displays missing values for a variable.  For character variables such as Name (shown below), a blank represents a missing value.

For numeric variables such as Age (shown below), a period represents a missing value.

Missing values

 Name    Laverne   Jaffe  Wilson

 Sex    M   M   F   M

 Age    48   58  .   28

 Weight    128.6   158.3   115.5   170.1

SAS Techies 2009

11/13/09

14

Informats Informats determine how data values are read into a SAS data set. You must use informats to read numeric values that contain letters or other special characters.
$ASCIIw. $BINARYw. $w. COMMAw.d DATEw. NENGOw. PERCENTw. TIMEw. w.d

DATETIMEw. PDw.d JULIANw. MMDDYYw.

$VARYINGw. HEXw.

SAS Techies 2009

11/13/09

15

Formats write values out using some particular form.

 

User defined formats proc format lib=library; value JobFmt * if format is char then $Jobfmt ; 103='manager' 105='text processor‘; run; Applied like -- format var Jobfmt. Var2 dollar11.2; These are utilized to look up as if it were a table.

SAS Techies 2009

11/13/09

16

Contents Procedure PROC CONTENTS DATA=libref._ALL_ NODETAILS; RUN;

SAS Techies 2009

11/13/09

17

To modify system options, you submit an OPTIONS statement. OPTIONS statement is global, the settings remain in effect until you modify them or end your SAS session.

PROC OPTIONS <option(s)>; RUN; Proc options option=firstobs value; run;
Number|NoNumber Date|nodate Pageno Pagesize Linesize Mprint Mlogic Symbolgen Compress=yes|no BYLINE|NOBYLINE DETAILS|NODETAILS FIRSTOBS= FORMCHAR= FORMDLIM= LABEL|NOLABEL OBS= REPLACE|NOREPLACE SOURCE|NOSOURCE

SAS Techies 2009

11/13/09

18

Default Yearcutoff=1920
Date Expression 12/07/41 18Dec15 04/15/30 15Apr95 Interpreted As 12/07/1941 18Dec2015 04/15/1930 15Apr1995

Date Expression 06Oct59 17Mar1783

SAS Date Informat
date7. date9.

Interpreted As 06Oct1959 17Mar1783

SAS Techies 2009

11/13/09

19

Assignment statements X1=1; X2=2; X3=X2-X1; Note: In the second case if either X2 or X1 is missing then the value of X3 is missing.
 

You can create a variable (not macro variables) in a Datastep only. Ex: data new; x=‘abc’; run;

SAS Techies 2009

11/13/09

20

 

To create a variable that accumulates values down observations, a sum statement in a DATA step is used. Note -- missing values are ignored. Equivalent to function Sum(x1,x2,….) If dsn some has y values Y - 10,20,30 then X - 10,30,60

Ex: Data new; set some; X+y; run;

SAS Techies 2009

11/13/09

21

To assign a length to a variable Ex: Length var1 $ 10 var2 10;

Where used: data finance.newloan; set finance.records(drop=amount rate); TotalLoan+payment; if code='1' then Type='Fixed'; else Type='Variable'; run; Output will have Type=‘Varia’
SAS Techies 2009 11/13/09 22

Error Types
◦ Syntax Errors ◦ Data Errors occur when program statements do not conform to the rules of the SAS language
occur when some data values are not appropriate for the SAS statements that are specified in a program

SAS Techies 2009

11/13/09

23

SAS Techies 2009

11/13/09

24

NOTE: Invalid data for RecHR in line 14 35-37. RULE: ----+----1----+----2----+----3----+----4----+----5--14 2575 Quigley, M 74 152 Q13 11 26 I ID=2575 Name=Quigley, M RestHR=74 MaxHR=152 RecHR=. TimeMin=11 TimeSec=26 Tolerance=I _ERROR_=1 _N_=14 NOTE: 21 records were read from the infile TESTS. The minimum record length was 45. The maximum record length was 45. NOTE: The data set CLINIC.STRESS has 21 observations and 8 variables. NOTE: DATA statement used: real time 2.04 seconds cpu time 0.06 seconds

SAS Techies 2009

11/13/09

25

Sign up to vote on this title
UsefulNot useful