在 R 中应用多参数函数

Manav Narula 2021年1月22日
在 R 中应用多参数函数

在任何编程语言中,函数都是必不可少的。函数是一个代码块,它可以被调用来执行编程中的特定操作。

在 R 中,我们有内置的函数,也有用户定义的函数。我们也可以直接将函数应用于一个或多个参数的列表或向量。

在本教程中,我们将使用下面的向量和函数。

f1 <- function(v1,v2){
  v1+v2
}
vec1 <- c(1,5,9)
vec2 <- c(2,7,6)

这个函数比较简单,它只是增加了两个元素,我们有两个各有三个元素的向量。

在本教程中,我们将使用 sapply()lapply()mapply() 函数,我们将对整个向量应用一个函数,并将多个参数传递给同一个,并将向量作为参数传递给函数。

在我们要将一个函数应用于给定的向量或列表的情况下,我们可以使用 lapply()sapply()

lapply() 函数返回一个列表作为最终输出。例如:

lapply(vec1,f1,5)
[[1]]
[1] 6

[[2]]
[1] 10

[[3]]
[1] 14
typeof(lapply(vec1,f1,5))
[1] "list"

如你所见,我们将 f1 函数传递给 vec1,并传递另一个参数 5,因为该函数需要两个参数,这只是在所有元素上加 5。

sapply() 执行与 lapply() 函数相同的功能,但被认为是两者中效率较高的,因为它简化了输出,结果不一定是一个列表。

下面的代码片段显示了如何操作。

sapply(vec1,f1,5)
[1]  6 10 14
typeof(sapply(vec1,f1,5))
[1] "double"

另一个有趣的函数是 mapply()。它将一个函数应用于作为参数传递的向量。该函数应用于向量的第一个元素,第二个元素,以此类推。

mapply(f1,vec1,vec2)
[1]  3 12 15

请注意,使用 mapply() 函数,我们能够将向量作为多个参数传递给一个函数,因为它返回同一位置的元素之和。

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - R Function