函数在 R 编程语言中的概念与其他编程语言(如 C、C++、Java、PYTHON 等)中的概念相似。在本教程中,您将学习函数在 R 中的作用、如何使用它来构建简单高效的程序,以及执行逻辑的不同函数类型。
函数是一组可重用的代码,用于执行逻辑。在 R 编程语言中,函数被视为一个 R 对象。
当程序开始执行时,解释器会将控制流传递给函数,并提供执行代码所需的参数。函数成功执行后,控制权会交还给解释器。

当需要对不同输入应用相同的代码时,就会使用函数。R 中的函数是一组应用于这些 R 对象的指令。函数通过避免代码重复来节省程序员的时间。换句话说,使用函数可以避免一次又一次地编写相同的代码。在使用函数时,只有输入会变化,而功能或代码保持不变。

R 编程中引入了两种类型的函数。它们是
函数是为了相似逻辑而执行的一组指令,但它们的输入不同,从而产生各种输出。函数可以多次用于生成具有不同输入的输出,从而通过消除或在程序中重复编写相同的代码来节省用户时间。每当需要频繁执行一组操作时,只需调用预定义的函数即可使其简单易行。
在 R 编程中,函数是使用一个名为 function 的内置保留字创建的。
在 R 中创建函数
Function_name = function(arguments){
#body_of_function
……..
return(return)
}
其中
“function”是定义 R 中函数()的保留字。function() 接收作为参数的输入值,并开始执行函数体以完成特定任务,然后使用 return() 函数返回最终结果。function() 被赋值给一个名为 function_name 的变量,该变量在程序中的任何位置被调用时都会执行 function()。
让我们通过一个简单的 R 程序来理解函数概念,该程序用于将两个数字相加
#To create a function named add
add <- function(x, y){ #function()
# function to add x and y
sum <- x+y #function body
return(sum) #return()
}
add(4,5) #function(4,5),sum <- 4+5,return(9)
#outputs 9
名为“add”的 function_name 接收输入值作为参数 arg1=4、arg2=5,例如 add(4,5) 调用名为 add 的函数,并将参数传递给 function(),函数体中的指令集开始执行以评估结果。在我们的示例中,add(4,5) 调用 function() 来执行这两个数字的加法 (sum<-4+5) 并存储在另一个名为 sum 的变量中,然后 return() 函数返回总和作为输出,等于 9,并在控制台中输出,如下所示
> add(4,5) [1] 9
如果使用另一组参数作为输入调用名为 sum 的相同 function(),则会执行相同的过程并输出结果。例如,如果您调用函数 add(234,56),它会产生 290 的结果。
> add(234,56) #function(234,56),sum<-234+56,return(290)
[1] 290
这里展示了 R 中函数的需求或重要性。如果我们编写了一组预定义的代码,我们就可以在程序中根据我们的输入需求多次使用它。这使得编码变得容易,并节省了程序员所需的时间。
查看 RStudio 中带有多个 add() 函数的截图。

让我们尝试使用函数执行相同的加法操作,但不使用 return() 函数
创建不带 return() 函数的函数的程序
add <- function(x, y) {
# function to add x and y
sum <- x+y
print(paste(x,"+",y, "=",sum))
}
add(4,5)
上述代码也生成了与我们之前示例相同的输出。唯一的区别是缺少 return() 函数,而是提供了 print 语句来显示结果。
执行此代码块后的结果是
[1] "4 + 5 = 9"
我们可以推断,return 语句是构成函数的一个组件,它是可选的,其他一些组件也是如此。
注意
R 中函数的主要组成部分或部分可概括为三个部分。它们是

这些是 R 程序中的函数组成的组件,可以使用 R 程序中定义的某些内置函数进行识别。
示例
> body(add)
{
sum <- x + y
print(paste(x, "+", y, "=", sum))
}
示例
> formals(add)
$x
$y
示例
> environment(add)
< environment: R_GlobalEnv >

| R 函数的组件 | 检查组件的函数 | 描述 |
|---|---|---|
| 函数体 | body() | 函数内部要执行的指令集合定义了函数体 |
| 形式参数 | formals() | 形式参数定义了调用函数时传递的参数列表,例如 arg1、arg2、arg3 等。 |
| 环境 | environment() | 环境定义了函数变量存储为 R 对象的位置。 |
R 中的对象是 R 程序中具有不同属性和结构的数据。
考虑创建一个名为 my_age 的 R 对象,它通过使用 R 中的任何赋值运算符(=, <-, ->)赋给一些值。当您在 RStudio 中运行代码时,您会看到变量 my_age 作为对象存储在全局环境中。

现在考虑另一个对象 age,它被赋值为 4。让我们看看如何将函数应用于我们创建的对象。假设您需要对您创建的对象或变量(my_age, age)执行加法。通过在 R 中添加 sum() 函数即可实现。
使用 sum() 函数执行加法,并将参数传递到 sum() 函数中。
> #use function sum()
> sum(my_age,age)
[1] 16
使用 sum 函数后,您将获得变量中存储的值相加后的输出。