# Statistics Made Accessible – R

R is a GNU alternative to Stephen Wolfram’s Mathematica.

If you want to do any statistical programming take a look at R.  Darren Wilkinson has a great blog post about MCMC (Markov Chain Monte Carlo) programming with R.

MCMC Programming in R, Python, Java and C

http://darrenjw.wordpress.com/2010/04/28/mcmc-programming-in-r-python-java-and-c/

Sanjog Misra extended Darren’s post in blog and it’s a good read if you want to work with Rccp.

Thinking inside the box

http://dirk.eddelbuettel.com/blog/2011/07/14/#rcpp_gibbs_example

Also anything written by Dirk Eddelbuettel is worth the time to read.

Here is a R script I randomly found at Ideone. Ideone supports every available programming langue but there are library restrictions.  Not entirely sure who wrote this but it looks like a good sample script to show the R syntax and matrices.  Plus the author wrote comments which is always nice.

http://ideone.com/gzWun#

Source

# Goals: To write functions
#        To write functions that send back multiple objects.

# FIRST LEARN ABOUT LISTS —
X = list(height=5.4, weight=54)
print(“Use default printing –“)
print(X)
print(“Accessing individual elements –“)
cat(“Your height is “, X\$height, ” and your weight is “, X\$weight, “\n”)

# FUNCTIONS —
square <- function(x) {
return(x*x)
}
cat(“The square of 3 is “, square(3), “\n”)

# default value of the arg is set to 5.
cube <- function(x=5) {
return(x*x*x);
}
cat(“Calling cube with 2 : “, cube(2), “\n”)    # will give 2^3
cat(“Calling cube        : “, cube(), “\n”)     # will default to 5^3.

# LEARN ABOUT FUNCTIONS THAT RETURN MULTIPLE OBJECTS —
powers <- function(x) {
parcel = list(x2=x*x, x3=x*x*x, x4=x*x*x*x);
return(parcel);
}

X = powers(3);
print(“Showing powers of 3 –“); print(X);

# WRITING THIS COMPACTLY (4 lines instead of 7)

powerful <- function(x) {
return(list(x2=x*x, x3=x*x*x, x4=x*x*x*x));
}
print(“Showing powers of 3 –“); print(powerful(3));

# In R, the last expression in a function is, by default, what is
# returned. So you could equally just say:
powerful <- function(x) {list(x2=x*x, x3=x*x*x, x4=x*x*x*x)}

[/source code]

Standout

[1] “Use default printing –”
\$height
[1] 5.4

\$weight
[1] 54

[1] “Accessing individual elements –”
The square of 3 is 9
Calling cube with 2 : 8
Calling cube : 125
[1] “Showing powers of 3 –”
\$x2
[1] 9

\$x3
[1] 27

\$x4
[1] 81

[1] “Showing powers of 3 –”
\$x2
[1] 9

\$x3
[1] 27

\$x4
[1] 81