O'Reilly logo

The R Book by Michael J. Crawley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Writing functions in R

Functions in R are objects that carry out operations on arguments that are supplied to them and return one or more values. The syntax for writing a function is

function (argument list) body

The first component of the function declaration is the keyword function, which indicates to R that you want to create a function. An argument list is a comma-separated list of formal arguments. A formal argument can be a symbol (i.e. a variable name such as x or y), a statement of the form symbol = expression (e.g. pch=16) or the special formal argument ... (triple dot). The body can be any valid R expression or set of R expressions. Generally, the body is a group of expressions contained in curly brackets { }, with each expression on a separate line. Functions are typically assigned to symbols, but they need not to be. This will only begin to mean anything after you have seen several examples in operation.

Arithmetic mean of a single sample

The mean is the sum of the numbers Σy divided by the number of numbers n = Σ 1 (summing over the number of numbers in the vector called y). The R function for n is length(y) and for Σy is sum(y), so a function to compute arithmetic means is

arithmetic.mean<-function(x)  sum(x)/length(x)

We should test the function with some data where we know the right answer:

y<-c(3,3,4,5,5)

arithmetic.mean(y)

[1]  4

Needless to say, there is a built-in function for arithmetic means called mean:

mean(y)

[1]  4

Median of a single sample

The median ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required