The Fibonacci numbers have many mathematical relationships and have been discovered repeatedly in nature. They are constructed as the sum of the previous two values, initialized with the values 1 and 1.

A pdf of this example is available here.

**SAS**

In SAS, we use the `lag` function (section 1.4.17, p. 22) to retrieve the last value.

data fibo;

do i = 1 to 10;

fib = sum(fib, lag(fib));

if i eq 1 then fib = 1;

output;

end;

run;

proc print data=fibo;

run;

This generates the following output:

Obs i fib

1 1 1

2 2 1

3 3 2

4 4 3

5 5 5

6 6 8

7 7 13

8 8 21

9 9 34

10 10 55

**R**

In R we can loop over an array to perform the same job.

len <- 10

fibvals <- numeric(len)

fibvals[1] <- 1

fibvals[2] <- 1

for (i in 3:len) {

fibvals[i] <- fibvals[i-1]+fibvals[i-2]

}

This generates the following output:

> fibvals

[1] 1 1 2 3 5 8 13 21 34 55

*Related*

To

**leave a comment** for the author, please follow the link and comment on his blog:

** SAS and R**.

R-bloggers.com offers

**daily e-mail updates** about

R news and

tutorials on topics such as: visualization (

ggplot2,

Boxplots,

maps,

animation), programming (

RStudio,

Sweave,

LaTeX,

SQL,

Eclipse,

git,

hadoop,

Web Scraping) statistics (

regression,

PCA,

time series,

trading) and more...

If you got this far, why not

__subscribe for updates__ from the site? Choose your flavor:

e-mail,

twitter,

RSS, or

facebook...