一起组织以执行特定任务的一组语句称为函数。 R提供了一系列内置函数,它允许用户创建自己的函数。函数用于以模块化方式执行任务。
函数用于避免重复相同的任务并降低复杂性。为了理解和维护我们的代码,我们使用该函数在逻辑上将其分解为较小的部分。一个函数应该是
- 为执行指定任务而编写。
- 可能有或没有参数
- 包含编写代码的正文。
- 可能会或可能不会返回一个或多个输出值。
R函数语法
func_name <- function(arg_1, arg_2, ...) {
Function body
} 函数组成
函数包括四个部分,如下所示:

函数名称(Function Name)
函数名称是函数的实际名称。在R中,该函数及其名称存储为一个对象。
参数(Arguments)
在R中,参数是一个占位符。在函数中,参数是可选的,这意味着函数可以包含也可以不包含参数,并且这些参数也可以具有默认值。调用函数时,我们将值传递给参数。
函数主体(Function Body)
函数主体包含一组定义函数函数的语句。
返回值(Return value)
它是函数主体中的最后一个表达式。
函数类型
与其他语言类似,R也具有两种类型的函数,即内置函数和用户定义的函数。在R中,有很多内置函数,我们可以直接在程序中调用它们而无需定义它们。 R还允许我们创建自己的函数。

内建函数
在编程框架中已经创建或定义的函数称为内置函数。用户不需要创建这些类型的函数,并且这些函数内置于应用程序中。最终用户只需调用即可访问这些函数。 R具有不同类型的内置函数,例如seq(),mean(),max()和sum(x)等。
# 创建从 32 到 46 的数字序列。 print(seq(32,46))# 求从 22 到 80 的数字的平均值。 print(mean(22:80))
# 求从 41 到 70 的数字之和。 print(sum(41:70))
输出:

用户自定义函数
R允许我们在程序中创建自己的函数。用户定义用户定义函数以满足用户需求。一旦创建了这些函数,我们就可以使用这些函数,例如内置函数。
# 创建一个没有参数的函数。
learnfk.function <- function() {
for(i in 1:5) {
print(i^2)
}
}
learnfk.function()
输出:

带参数调用
我们可以通过在函数中传递适当的参数来轻松地调用函数。让我们看一个示例,看看如何调用函数。
# 创建一个函数来按顺序打印数字的平方。
learnfk.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
# 调用函数 learnfk.function,将 10 作为参数。
learnfk.function(10) 输出:

不带参数调用
在R中,我们可以通过以下方式调用不带参数的函数
# 创建一个函数来按顺序打印数字的平方。
learnfk.function <- function() {
for(i in 1:5) {
a <- i^2
print(a)
}
}
不带参数调用函数 learnfk.function。
learnfk.function()
输出:

带参数值调用
我们可以按照与函数中定义的顺序相同的顺序将其提供给函数调用,也可以按不同的顺序提供,但将其分配给参数的名称。
# 创建带参数的函数。
learnfk.function <- function(x,y,z) {
result <- x * y + z
print(result)
}
通过参数的位置调用函数。
learnfk.function(11,13,9)
通过参数名称调用函数。
learnfk.function(x = 2, y = 5, z = 3)
输出:

默认参数调用
为了获得默认结果,我们将值分配给函数定义中的参数,然后在不提供参数的情况下调用函数。如果我们在函数调用中传递任何参数,则它将被函数定义中参数的默认值替换。
# 创建带参数的函数。
learnfk.function <- function(x = 11, y = 24) {
result <- x * y
print(result)
}
在不提供任何参数的情况下调用函数。
learnfk.function()
调用函数并给出参数的新值。
learnfk.function(4,6)
输出: