本文概述
一起组织以执行特定任务的一组语句称为函数。 R提供了一系列内置函数, 它允许用户创建自己的函数。函数用于以模块化方式执行任务。
函数用于避免重复相同的任务并降低复杂性。为了理解和维护我们的代码, 我们使用该函数在逻辑上将其分解为较小的部分。一个功能应该是
- 编写以执行指定任务。
- 可能有或没有论点
- 包含编写我们的代码的主体。
- 可能会或可能不会返回一个或多个输出值。
“通过使用关键字函数创建R函数。” R函数的语法如下:
func_name <- function(arg_1, arg_2, ...) {
Function body
}
功能组成
功能包括四个部分, 如下所示:
功能名称
函数名称是函数的实际名称。在R中, 该函数及其名称存储为一个对象。
争论
在R中, 参数是一个占位符。在函数中, 参数是可选的, 这意味着函数可以包含也可以不包含参数, 并且这些参数也可以具有默认值。调用函数时, 我们将一个值传递给参数。
功能体
函数主体包含一组定义函数功能的语句。
返回值
它是函数主体中要评估的最后一个表达式。
功能类型
与其他语言类似, R也具有两种类型的函数, 即内置函数和用户定义函数。在R中, 有很多内置函数, 我们可以直接在程序中调用它们而无需定义它们。 R还允许我们创建自己的函数。
内建功能
在编程框架中已经创建或定义的功能称为内置功能。用户不需要创建这些类型的功能, 并且这些功能内置于应用程序中。最终用户只需调用即可访问这些功能。 R具有不同类型的内置函数, 例如seq(), mean(), max()和sum(x)等。
# Creating sequence of numbers from 32 to 46.
print(seq(32, 46))
# Finding the mean of numbers from 22 to 80.
print(mean(22:80))
# Finding the sum of numbers from 41 to 70.
print(sum(41:70))
输出
用户自定义功能
R允许我们在程序中创建自己的函数。用户定义用户定义功能以满足用户需求。一旦创建了这些功能, 我们就可以使用这些功能, 例如内置功能。
# Creating a function without an argument.
new.function <- function() {
for(i in 1:5) {
print(i^2)
}
}
new.function()
输出
带参数的函数调用
我们可以通过在函数中传递适当的参数来轻松调用函数。让我们看一个示例, 看看如何调用函数。
# Creating a function to print squares of numbers in sequence.
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
# Calling the function new.function supplying 10 as an argument.
new.function(10)
输出
不带参数的函数调用
在R中, 我们可以通过以下方式调用不带参数的函数
# Creating a function to print squares of numbers in sequence.
new.function <- function() {
for(i in 1:5) {
a <- i^2
print(a)
}
}
# Calling the function new.function with no argument.
new.function()
输出
带参数值的函数调用
我们可以按照与函数定义相同的顺序将参数提供给函数调用, 也可以按不同的顺序提供参数, 但是将其分配给参数的名称。
# Creating a function with arguments.
new.function <- function(x, y, z) {
result <- x * y + z
print(result)
}
# Calling the function by position of arguments.
new.function(11, 13, 9)
# Calling the function by names of the arguments.
new.function(x = 2, y = 5, z = 3)
输出
使用默认参数的函数调用
为了获得默认结果, 我们将值分配给函数定义中的参数, 然后在不提供参数的情况下调用函数。如果我们在函数调用中传递任何参数, 则它将被函数定义中参数的默认值替换。
# Creating a function with arguments.
new.function <- function(x = 11, y = 24) {
result <- x * y
print(result)
}
# Calling the function without giving any argument.
new.function()
# Calling the function with giving new values of the argument.
new.function(4, 6)
输出
评论前必须登录!
注册