在 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()
函数,我们能够将向量作为多个参数传递给一个函数,因为它返回同一位置的元素之和。
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