Open In App

Functions in R Programming

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

A function accepts input arguments and produces the output by executing valid R commands that are inside the function.

Functions are useful when you want to perform a certain task multiple times.

In R Programming Language when you are creating a function the function name and the file in which you are creating the function need not be the same and you can have one or more functions in R.

Creating a Function in R Programming

Functions are created in R by using the command function(). The general structure of the function file is as follows: 

Functions in R Programming-Geeksforgeeks

Functions in R Programming

Note: In the above syntax f is the function name, this means that you are creating a function with name f which takes certain arguments and executes the following statements.

Parameters or Arguments in R Functions:

Parameters and arguments are same term in functions.

Parameters or arguments are the values passed into a function.

A function can have any number of arguments, they are separated by comma in paranthesis.

Example:

R




# function to add 2 numbers
add_num <- function(a,b)
{
  sum_result <- a+b
  return(sum_result)
  }
# calling add_num function
 sum = add_num(35,34)
#printing result
print(sum)


Output

[1] 69

No. of Parameters:

Function should be called with right no. of parameters, neither less nor more or else it will give error.

Default Value of Parameter:

Some functions have default values, and you can also give default value in your user-defined functions. These values are used by functions if user doesn’t pass any parameter value while calling a function.

Return Value:

You can use return() function if you want your function to return the result.

Read More: R Function Parameters

Calling a Function in R

After creating a Function, you have to call the function to use it.

Calling a function in R is very easy, you can call a function by writing it’s name and passing possible parameters value.

Passing Arguments to Functions in R Programming Language

There are several ways you can pass the arguments to the function: 

  • Case 1: Generally in R, the arguments are passed to the function in the same order as in the function definition.
  • Case 2: If you do not want to follow any order what you can do is you can pass the arguments using the names of the arguments in any order.
  • Case 3: If the arguments are not passed the default values are used to execute the function.

Now, let us see the examples for each of these cases in the following R code:

R




# A simple R program to demonstrate
# passing arguments to a function
 
Rectangle = function(length=5, width=4){
  area = length * width
  return(area)
}
 
# Case 1:
print(Rectangle(2, 3))
 
# Case 2:
print(Rectangle(width = 8, length = 4))
 
# Case 3:
print(Rectangle())


Output

[1] 6
[1] 32
[1] 20

Types of Function in R Language

  1. Built-in Function: Built-in functions in R are pre-defined functions that are available in R programming languages to perform common tasks or operations.
  2. User-defined Function: R language allow us to write our own function.   

Built-in Function in R Programming Language

Built-in Function are the functions that are already existing in R language and you just need to call them to use.

Here we will use built-in functions like sum(), max() and min().

R




# Find sum of numbers 4 to 6.
print(sum(4:6))
 
# Find max of numbers 4 and 6.
print(max(4:6))
 
# Find min of numbers 4 and 6.
print(min(4:6))


Output

[1] 15
[1] 6
[1] 4

Other Built-in Functions in R:

Let’s look at the list of built-in R functions and their uses:

Functions

Syntax

 Mathematical Functions  

abs()

calculates a number’s absolute value.

sqrt()

calculates a number’s square root. 

  round()

rounds a number to the nearest integer.

exp()

calculates a number’s exponential value

log()

which calculates a number’s natural logarithm.

cos(), sin(), and tan()

calculates a number’s cosine, sine, and tang.
Statistical Functions  

mean()

 A vector’s arithmetic mean is determined by the mean() function. 

median()

 A vector’s median value is determined by the median() function.

cor()

calculates the correlation between two vectors.

var()

 calculates the variance of a vector and calculates the standard deviation of a vector.
Data Manipulation Functions  

unique()

 returns the unique values in a vector.

subset()

subsets a data frame based on conditions.

aggregate()

 groups data according to a grouping variable.

order()

uses ascending or descending order to sort a vector.
File Input/Output Functions  

read.csv()

reads information from a CSV file. 

Write.csv()

publishes information to write a CSV file.

Read. table()

reads information from a tabular.

Write.table()

 creates a tabular file with data.

User-defined Functions in R Programming Language

User-defined functions are the functions that are created by the user.

User defines the working, parameters, default parameter, etc. of that user-defined function. They can be only used in that specific code.

Example  

R




# A simple R function to check
# whether x is even or odd
 
evenOdd = function(x){
  if(x %% 2 == 0)
    return("even")
  else
    return("odd")
}
 
print(evenOdd(4))
print(evenOdd(3))


Output 

[1] "even"
[1] "odd"

R Function Examples

Now let’s look at some use cases of functions in R with some examples.

1. Single Input Single Output

Now create a function in R that will take a single input and gives us a single output. 

Following is an example to create a function that calculates the area of a circle which takes in the arguments the radius. So, to create a function, name the function as “areaOfCircle” and the arguments that are needed to be passed are the “radius” of the circle.  

R




# A simple R function to calculate
# area of a circle
 
areaOfCircle = function(radius){
  area = pi*radius^2
  return(area)
}
 
print(areaOfCircle(2))


Output

[1] 12.56637

2. Multiple Input Multiple Output

Now create a function in R Language that will take multiple inputs and gives us multiple outputs using a list. 

The functions in R Language take multiple input objects but returned only one object as output, this is, however, not a limitation because you can create lists of all the outputs which you want to create and once the list is created you can access them into the elements of the list and get the answers which you want.

Let us consider this example to create a function “Rectangle” which takes “length” and “width” of the rectangle and returns area and perimeter of that rectangle. Since R Language can return only one object. Hence, create one object which is a list that contains “area” and “perimeter” and return the list. 

R




# A simple R function to calculate
# area and perimeter of a rectangle
 
Rectangle = function(length, width){
  area = length * width
  perimeter = 2 * (length + width)
   
  # create an object called result which is
  # a list of area and perimeter
  result = list("Area" = area, "Perimeter" = perimeter)
  return(result)
}
 
resultList = Rectangle(2, 3)
print(resultList["Area"])
print(resultList["Perimeter"])


Output

$Area
[1] 6

$Perimeter
[1] 10


3. Inline Functions in R Programming Language

Sometimes creating an R script file, loading it, executing it is a lot of work when you want to just create a very small function. So, what we can do in this kind of situation is an inline function.

To create an inline function you have to use the function command with the argument x and then the expression of the function. 

Example

R




# A simple R program to
# demonstrate the inline function
 
f = function(x) x^2*4+x/3
 
print(f(4))
print(f(-2))
print(0)


Output

[1] 65.33333
[1] 15.33333
[1] 0

Lazy Evaluations of Functions in R Programming Language

In R the functions are executed in a lazy fashion. When we say lazy what it means is if some arguments are missing the function is still executed as long as the execution does not involve those arguments.

Example

In the function “Cylinder” given below. There are defined three-argument “diameter”, “length” and “radius” in the function and the volume calculation does not involve this argument “radius” in this calculation. Now, when you pass this argument “diameter” and “length” even though you are not passing this “radius” the function will still execute because this radius is not used in the calculations inside the function. 
Let’s illustrate this in an R code given below:

R




# A simple R program to demonstrate
# Lazy evaluations of functions
 
Cylinder = function(diameter, length, radius ){
  volume = pi*diameter^2*length/4
  return(volume)
}
 
# This'll execute because this
# radius is not used in the
# calculations inside the function.
print(Cylinder(5, 10))


Output

[1] 196.3495

If you do not pass the argument and then use it in the definition of the function it will throw an error that this “radius” is not passed and it is being used in the function definition.

Example

R




# A simple R program to demonstrate
# Lazy evaluations of functions
 
Cylinder = function(diameter, length, radius ){
  volume = pi*diameter^2*length/4
  print(radius)
  return(volume)
}
 
# This'll throw an error
print(Cylinder(5, 10))


Output 

Error in print(radius) : argument "radius" is missing, with no default

We have discussed all about R functions to give you some idea about using functions in R language. You can go and study each individual in-built function on this page to completely grasp the concept of R functions and their uses.

Also Check:



Last Updated : 11 Mar, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads