Functions in R Language: Quick Guide 1

Functions in R language (or any programming language) are fundamental building blocks that allow you to organize the programming code, make it reusable, and perform complex tasks efficiently.

Functions in the R Language are first-class objects of the class function and can be passed by arguments to other functions. Functions can be assigned to variables, stored in a list, passed as arguments to other functions, created functions inside functions, and even returned function as the result of a function. There are three building blocks of functional programming: anonymous functions, closures (functions written by functions), and a list of functions.

Components of a Function

Each function in the R Language consists of three components

  1. formal( )
  2. body( )
  3. environment( )

Types of Function

There are two main types of functions in R:

  1. Built-in functions in R: There is a vast library of built-in functions in R Language, like finding the mean (mean()), calculating the sum (sum()), or creating graphs (plot()).
  2. User-defined functions in R: One can create functions to tailor them to one’s needs. This is useful for repetitive tasks, improving code readability, and avoiding errors.

Each function has arguments that can be given default values, which makes interactive usage more convenient. A function is defined by an assignment of the form

name <- function(arg1, arg2, …){
     Expression
}

where the expression uses the arg1, arg2, ... (arguments) to calculate a value. The value of the expression is the value returned for the function. A call to function usually takes the form

name(expr1, expr2, …)

and may occur anywhere a function call is legitimate.

Functions in R Language: Example

As an example, consider the following customized function (user-defined function) center(). This function can compute the mean, median, and trimmed mean of the input data. The center() function has two arguments, the first argument is for data and the second argument is for the selection of summary statistics.

center<-function(x, type){
    type == "mean" && return(mean(x))
    type == "median" && return(median(x))
    type == "trimmed" && return(mean(x, trim=0.1))
}

As another example, the user-defined summary( ) function is created without repetition of some arguments, i.e. duplication is removed. Note that all the functions in the user-defined function are stored as a list.

summary <- function(x) {
     funs <- c(mean, median, sd, mad, IQR)
     lapply(funs, function(f) f(x, na.rm = TRUE))
}
Functions in R Language

The center() function is created to perform some summary statistics using the switch() statement.

center<-function(x, type){
    switch(type,
         mean = mean(x),
         median = median(x),
         trimmed = mean(x,trim=0.1)
    )
}

Let us generate the data from normal distribution and check the output from the user-defined function center().

x <- rnorm(100)

center(x, type="mean")
center(x, type="median")
center(x, type="trimmed")
center(x, type="mode")
Functions in R Language

FAQs about Functions in R Language

  1. What is a function in R?
  2. Describe the components of a function
  3. Give some working examples of customized functions in R.
  4. What is meant by arguments of a function
  5. Differentiate between built-in and user-defined functions in R Language.

https://itfeature.com

https://gmstat.com

How to View Source Code of R Method/ Function?

The article is about viewing the source code of R Method. There are different ways to view the source code of an R method or function. It will help to know how the function is working.

Source Code of R Method (Internal Functions)

If you want to see the source code of R method or the internal function (functions from base packages), just type the name of the function at the R prompt such as;

rowMeans
view R code of method

Functions or Methods from the S3 Class System

For S3 classes, the methods function can be used to list the methods for a particular generic function or class.

methods(predict)
Methods from the S3

Note that “Non-Visible functions are asterisked” means that the function is not exported from its package’s namespace.

One can still view its source code via the ::: function such as

stats:::predict.lm

or by using getAnywhere() function, such as

getAnywhere(predict.lm)

Note that the getAnywhere() function is useful as you don’t need to know from which package the function or method comes from.

Functions or Methods from the S4 Class System

The S4 system is a newer method dispatch system and is an alternative to the S3 system. The package ‘Matrix’ is an example of S4 function.

library(Matrix)
chol2inv
S4 Class System

The output already offers a lot of information. The standardGeneric is an indicator of an S4 function. The method to see defined S4 methods is to use showMethods(chol2inv), that is;

showMethods(chol2inv)
Source Code of R Method: view R code S4 System

The getMethod can be used to see the source code of one of the methods, such as,

getMethod ("chol2inv", "diagonalMatrix")
view R code S4 System

View Source Code of Unexported Functions

In the case of unexported functions such as ts.union, .cbindts, and .makeNamesTs from the stats namespace, one can view the source code of these unexported functions using the ::: operator or getAnywhere() function, for example;

stats::: .makeNamesTs
getAnywhere(.makeNamesTs)
view R code S4 System

https://itfeature.com

Online MCQs Test Preparation Website