## How to do Sigma Summation in SAS

Frequent Contributor
Posts: 90

# How to do Sigma Summation in SAS

Hello Everyone,

I was wondering if there was an easy way of doing a sigma summation of 1 to n in SAS?

I have been playing around with DO loops, but I would like to know if there is an easier way or a function I could take advantage of.

I am trying to calculate the sum going from i=0 to k of 3^i/i!

Could anyone let me know if there is a sigma summation function I could take advantage of?

Thanks!

Frequent Contributor
Posts: 90

## Re: How to do Sigma Summation in SAS

This is what I have gotten so far that works the way that I want it to:

data test3;

do i =0 to 10 by 1;

n=sum(3**i/fact(i));

if first.i then cumsum=n;

else cumsum+n;

output;

end;

run;

proc print data=test3;

run;

If anyone has any other suggestions, please let me know!

Thanks!

SAS Super FREQ
Posts: 8,742

## Re: How to do Sigma Summation in SAS

Hi:

Does this note in the SAS Log concern you?

NOTE: Variable first.i is uninitialized.

cynthia

Frequent Contributor
Posts: 90

## Re: How to do Sigma Summation in SAS

Oh, I didn't even look at the log. Should I just initialize my i before the DO loop?

Super Contributor
Posts: 356

## Re: How to do Sigma Summation in SAS

i is intialised in the do loop, I don't think you can use first.i in the context you are trying.

Posts: 4,641

## Re: How to do Sigma Summation in SAS

SUM function is useful mostly when there are many arguments.  You can take advantage of the fact that c = sum(a,b) will yield a number whereas c = a + b will assing a missing value to c if a or b is missing. First.i would mean something to SAS only if there was a BY i statement in your datastep. First.i would take the value TRUE each time i changes value.

The proper symtax would be something like:

data test3;

do i = 0 to 10 by 1;

cumSum = sum(cumSum, 3**i/fact(i));

output;

end;

run;

proc print data=test3;

id i;

run;

PG

PG
Super User
Posts: 9,671

## Re: How to do Sigma Summation in SAS

Or use SUM statement.

sum+3**i/fact(i)  ;

Discussion stats
• 6 replies
• 700 views
• 0 likes
• 5 in conversation