Учебники

R — Функции

Функция — это набор операторов, организованных вместе для выполнения определенной задачи. R имеет большое количество встроенных функций, и пользователь может создавать свои собственные функции.

В R функция — это объект, поэтому интерпретатор R может передать управление функции вместе с аргументами, которые могут понадобиться функции для выполнения действий.

Функция, в свою очередь, выполняет свою задачу и возвращает управление интерпретатору, а также любой результат, который может быть сохранен в других объектах.

Определение функции

Функция R создается с помощью ключевой функции . Основной синтаксис определения функции R следующий:

function_name <- function(arg_1, arg_2, ...) {
   Function body 
}

Компоненты функций

Различные части функции —

  • Имя функции — это фактическое имя функции. Он хранится в среде R как объект с таким именем.

  • Аргументы — Аргумент является заполнителем. Когда вызывается функция, вы передаете значение аргументу. Аргументы необязательны; то есть функция может не содержать аргументов. Также аргументы могут иметь значения по умолчанию.

  • Тело функцииТело функции содержит набор операторов, которые определяют, что делает функция.

  • Возвращаемое значение — возвращаемое значение функции является последним выражением в теле функции, которое будет оценено.

Имя функции — это фактическое имя функции. Он хранится в среде R как объект с таким именем.

Аргументы — Аргумент является заполнителем. Когда вызывается функция, вы передаете значение аргументу. Аргументы необязательны; то есть функция может не содержать аргументов. Также аргументы могут иметь значения по умолчанию.

Тело функцииТело функции содержит набор операторов, которые определяют, что делает функция.

Возвращаемое значение — возвращаемое значение функции является последним выражением в теле функции, которое будет оценено.

В R много встроенных функций, которые можно напрямую вызывать в программе, не определяя их в первую очередь. Мы также можем создавать и использовать наши собственные функции, называемые пользовательскими функциями.

Встроенная функция

Простыми примерами встроенных функций являются seq () , mean () , max () , sum (x) и paste (…) и т. Д. Они напрямую вызываются пользовательскими программами. Вы можете ссылаться на наиболее широко используемые функции R.

Live Demo

# Create a sequence of numbers from 32 to 44.
print(seq(32,44))

# Find mean of numbers from 25 to 82.
print(mean(25:82))

# Find sum of numbers frm 41 to 68.
print(sum(41:68))

Когда мы выполняем приведенный выше код, он дает следующий результат —

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

Пользовательская функция

Мы можем создавать пользовательские функции в R. Они специфичны для того, что хочет пользователь, и после их создания они могут использоваться как встроенные функции. Ниже приведен пример того, как функция создается и используется.

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}	

Вызов функции

Live Demo

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

# Call the function new.function supplying 6 as an argument.
new.function(6)

Когда мы выполняем приведенный выше код, он дает следующий результат —

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

Вызов функции без аргумента

Live Demo

# Create a function without an argument.
new.function <- function() {
   for(i in 1:5) {
      print(i^2)
   }
}	

# Call the function without supplying an argument.
new.function()

Когда мы выполняем приведенный выше код, он дает следующий результат —

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

Вызов функции со значениями аргумента (по позиции и по имени)

Аргументы для вызова функции могут быть предоставлены в той же последовательности, как определено в функции, или они могут быть предоставлены в другой последовательности, но назначены именам аргументов.

Live Demo

# Create a function with arguments.
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}

# Call the function by position of arguments.
new.function(5,3,11)

# Call the function by names of the arguments.
new.function(a = 11, b = 5, c = 3)

Когда мы выполняем приведенный выше код, он дает следующий результат —

[1] 26
[1] 58

Вызов функции с аргументом по умолчанию

Мы можем определить значение аргументов в определении функции и вызвать функцию без указания аргумента, чтобы получить результат по умолчанию. Но мы также можем вызывать такие функции, предоставляя новые значения аргумента и получая результат не по умолчанию.

Live Demo

# Create a function with arguments.
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}

# Call the function without giving any argument.
new.function()

# Call the function with giving new values of the argument.
new.function(9,5)

Когда мы выполняем приведенный выше код, он дает следующий результат —

[1] 18
[1] 45

Ленивая оценка функции

Аргументы функций оцениваются лениво, что означает, что они оцениваются только тогда, когда это необходимо для тела функции.

Live Demo

# Create a function with arguments.
new.function <- function(a, b) {
   print(a^2)
   print(a)
   print(b)
}

# Evaluate the function without supplying one of the arguments.
new.function(6)

Когда мы выполняем приведенный выше код, он дает следующий результат —