Help using Base SAS procedures

How to do Sigma Summation in SAS

Reply
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

Posted in reply to InfoAlisaA

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,866

Re: How to do Sigma Summation in SAS

Posted in reply to InfoAlisaA

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

Posted in reply to Cynthia_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

Posted in reply to InfoAlisaA

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

Respected Advisor
Posts: 4,926

Re: How to do Sigma Summation in SAS

Posted in reply to InfoAlisaA

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: 10,035

Re: How to do Sigma Summation in SAS

Or use SUM statement.

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

Ask a Question
Discussion stats
  • 6 replies
  • 841 views
  • 0 likes
  • 5 in conversation