Функция — это набор операторов, организованных вместе для выполнения определенной задачи. R имеет большое количество встроенных функций, и пользователь может создавать свои собственные функции.
В R функция — это объект, поэтому интерпретатор R может передать управление функции вместе с аргументами, которые могут понадобиться функции для выполнения действий.
Функция, в свою очередь, выполняет свою задачу и возвращает управление интерпретатору, а также любой результат, который может быть сохранен в других объектах.
Определение функции
Функция R создается с помощью ключевой функции . Основной синтаксис определения функции R следующий:
function_name <- function(arg_1, arg_2, ...) { Function body }
Компоненты функций
Различные части функции —
-
Имя функции — это фактическое имя функции. Он хранится в среде R как объект с таким именем.
-
Аргументы — Аргумент является заполнителем. Когда вызывается функция, вы передаете значение аргументу. Аргументы необязательны; то есть функция может не содержать аргументов. Также аргументы могут иметь значения по умолчанию.
-
Тело функции — Тело функции содержит набор операторов, которые определяют, что делает функция.
-
Возвращаемое значение — возвращаемое значение функции является последним выражением в теле функции, которое будет оценено.
Имя функции — это фактическое имя функции. Он хранится в среде R как объект с таким именем.
Аргументы — Аргумент является заполнителем. Когда вызывается функция, вы передаете значение аргументу. Аргументы необязательны; то есть функция может не содержать аргументов. Также аргументы могут иметь значения по умолчанию.
Тело функции — Тело функции содержит набор операторов, которые определяют, что делает функция.
Возвращаемое значение — возвращаемое значение функции является последним выражением в теле функции, которое будет оценено.
В R много встроенных функций, которые можно напрямую вызывать в программе, не определяя их в первую очередь. Мы также можем создавать и использовать наши собственные функции, называемые пользовательскими функциями.
Встроенная функция
Простыми примерами встроенных функций являются seq () , mean () , max () , sum (x) и paste (…) и т. Д. Они напрямую вызываются пользовательскими программами. Вы можете ссылаться на наиболее широко используемые функции R.
# 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) } }
Вызов функции
# 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
Вызов функции без аргумента
# 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
Вызов функции со значениями аргумента (по позиции и по имени)
Аргументы для вызова функции могут быть предоставлены в той же последовательности, как определено в функции, или они могут быть предоставлены в другой последовательности, но назначены именам аргументов.
# 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
Вызов функции с аргументом по умолчанию
Мы можем определить значение аргументов в определении функции и вызвать функцию без указания аргумента, чтобы получить результат по умолчанию. Но мы также можем вызывать такие функции, предоставляя новые значения аргумента и получая результат не по умолчанию.
# 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
Ленивая оценка функции
Аргументы функций оцениваются лениво, что означает, что они оцениваются только тогда, когда это необходимо для тела функции.
# 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)
Когда мы выполняем приведенный выше код, он дает следующий результат —