在 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()
函数,我们能够将向量作为多个参数传递给一个函数,因为它返回同一位置的元素之和。
相关文章
R 中具有多个条件的函数向量化
发布时间:2023/03/21 浏览次数:64 分类:编程语言
-
一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更
在 R 中读取 xlsx 文件
发布时间:2023/03/21 浏览次数:66 分类:编程语言
-
在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。