In this post we will cover various numeric functions in SAS, along with examples.

## List of most frequently used numeric functions in SAS

See the syntax of SAS numeric functions including their description.

Functions | Syntax | Description |
---|---|---|

MIN | var1 = min(x, y, z); | minimum value |

MAX | var1 = max(x, y, z); | maximum value |

SUM | var1 = sum(x, y, z); | sum |

INT | var1 = int(x); | integer portion of a numeric value |

ABS | var1 = abs(x); | absolute value |

SQRT | var1 = sqrt(x); | square root |

MEAN | var1 = mean(x, y, z); | mean |

MEDIAN | var1 = median(x, y, z); | median or middle value |

ROUND | var1 = round(x, 1); | round the argument to the specified unit |

CEIL | var1 = ceil(x); | Smallest integer that is greater than or equal to the argument |

FLOOR | var1 = floor(x); | largest integer that is less than or equal to the argument |

LOG | var1 = log(x); | log of base e |

LOG10 | var1 = log10(x); | log of base 10 |

EXP | var1 = exp(x); | value of the exponential function |

LAG | var1 = lag(x); | value in the previous observation |

DIF | var1 = dif(x); | difference between the values in the current and previous observations |

N | var1 = n(x); | number of non-missing values |

NMISS | var1 = nmiss(x); | number of missing values |

coalesce | var1 = coalesce(of x1-x3); | It returns the first non-missing value. |

Let's create a sample SAS dataset for the examples in this tutorial.

data have; input sale1 sale2 sale3; cards; 12 24 17 25 . 67 20 39 44 34 69 82 ; run;

The SUM function handles **missing values** when calculating the sum, whereas the **+** operator does not return SUM if missing value(s) exist in any of the variable.

data want; set have; newsale = sale1 + sale2 + sale3; newsale1 = sum(sale1, sale2, sale3); run;

The above code creates a new SAS dataset named "want" using the "have" dataset as input. Two new variables, "newsale" and "newsale1," are calculated using the sum of "sale1," "sale2," and "sale3." Finally, the "run" statement ends the data step. You may have noticed the second value of "newsale" is blank whereas it is not blank for "newsale1".

data want; set have; avg = mean(sale1, sale2, sale3); middle = median(sale1, sale2, sale3); count = n(sale1, sale2, sale3); nonmissing = nmiss(sale1, sale2, sale3); run;

You can also use the `of`

keyword with a variable range (sale1-sale3) to specify that the functions should be applied to all variables within that range. The code below returns the similar output as output generated from the code shown in the previous section.

data want; set have; avg = mean(of sale1-sale3); middle = median(of sale1-sale3); count = n(of sale1-sale3); nonmissing = nmiss(of sale1-sale3); run;

`avg`

variable is assigned the mean value of`sale1`

,`sale2`

, and`sale3`

using the`mean`

function.`middle`

variable is assigned the median value of`sale1`

,`sale2`

, and`sale3`

using the`median`

function.`count`

variable is assigned the count of non-missing values of`sale1`

,`sale2`

, and`sale3`

using the`n`

function.`nonmissing`

variable is assigned the count of missing values of`sale1`

,`sale2`

, and`sale3`

using the`nmiss`

function.

Share Share Tweet