Group Discounts available for 3+ students and Corporate Clients

# Functions in SAS

## Functions:

It requires some arguments(variables or data values) and do some action and generate some result. These result will be stored in another variable. There are 3 types of functions. They are

1. Arithmetic functions
2. String functions
3. Date and time functions

### Arithmetic functions:

a)  Int function:

Using int function, we can get integer values from the variables.

Syntax:

Int(variable/data value)

b)  Round function:

Using round function we can round up the value nearest integers or nearest decimal places.

c)  Absolute(abs) function:

This convert all data values into positive format.

d) Mod function:

It returns reminder.

Ex:

Data demo;

Input pid age weight;

Cards;

101  24  78.55

102  23  56.46

103  34  -67.33

104  35  76.56

105  23  56.44

106  23  67.74;

Data demo 1;

Set demo;

Wkg = int (weight);

Wrkg = round(weight);

Wrdkg = round(weight, .1);

Wabs = abs(weight);

Run;

Proc print data = demo1;

Run;

Ex:

Data one;

X = mod(34,3);

Run;

Proc print;

Run;

`Desired to gain proficiency on SAS? Explore the blog post on SAS Training to become a pro in SAS.`

### Semantic error:

If we send wrong number of argument for functions. In this case we will get one type of execution error. This execution error is called semantic error.

Note:

If we want to create a subset of data based on new variable creations. In this case, we will use if statement instead of where statement.

Ex:

Data demo2;

Set demo;

i= mod(-n-, 2);

if i=1;

run;

proc print data =demo2;

run;

Ex:

Data demo2;

Set demo;

i= mod(-n-, 2);

if i=1;

run;

proc print data =demo2;

where I =0;

run;

Note:

We can create subset of data using if and where statement. If we use the if statement, pdv checks data error in all observation and next check the condition. This is very lengthy process.

If we use the where statement, pdv 1st of all check the condition after that brings into pdv and checks the data error.

### Sum function:

It can be used to do row wise sum analysis or row wise sums.

Note:

Using procedure block we can do row wise and column wise analysis. Using data set block we can do row wise sum analysis only.

### Propagation error (or)execution error:

If we do any arithmetic operations using with arithmetic operator then if we get any missing value in raw data, the result is also missing. This is called as propagation error, to overcome this problem use with functions.

Ex:

Data emp;

Input eid   jsale   fsale  msale;

Cards;

100  200  300  230

101  230    .     340

102  45 0  500  230

;

Data emp1;

Set emp;

Tot sale = sum (jsale ,  fsale,  msale);

Avgsal = mean (jsale ,  fsale,  msale);

Max sal = max(jsale ,  fsale,  msale);

Min sal = min (jsale ,  fsale,  msale);

Run;

Proc print data =emp1;

Run;

### Keep , drop, rename statement:

These we can use only in data set block.

Ex:

Data set input Gid \$ drug \$ week sub;

Cards;

G100  col5mg  3  120

G200  col5mg  3  130

G300  col5mg  3  140

G100  col10mg  6  120

;

Data medi1;

Set trt;

Keep Gid drug sub;

Run;

Data medi2;

Set trt;

Drop week;

Run;

Proc print data =medi1;

Run;

If we want to change the Gid, then we write after drop statement, rename gid = Groupid;

Data medi2;set trt;

Drop week;

Rename gid =groupid;

Run;

Proc print data =medi2;

Run;

### Special automatic variables:

-Numeric-

-character-

_Numeric_

_Character_

-Numeric-:

Hyphen numeric hyphen, it indicates part of numerical based on range.

-Character-:

Hyphen character hyphen, it indicates part of character variables based on range.

_Numeric_:

Underscore numeric underscore indicate all numeric variable

_Character_:

Underscore character underscore indicate all character variable

/* To read all numeric variables*/

Ex:

Data medi 3;

Set trt;

Keep _ numeric_;

Run;

/* To read all character variables*/

Ex:

Data medi 4;

Set trt;

Keep _ character_;

Run;

/* To read part of the numeric variables*/

Ex:

Data one;

Input name \$ age area \$ height weight gender \$;

Cards;

Kiran  56 hyd  5.6  67  male

Kumar  34  vij  4.5  56  male

;

Data two; set one;

Keep area – numeric – gender;

Run;

Proc print data = two;

Run;

For an Indepth knowledge on SAS, click on below

### 0 Responses on Functions in SAS"

#### Support

Please Enter Your Details and Query.
Three + 6