gpt4 book ai didi

r - 如何创建一个以 FUN 作为参数的 R 函数

转载 作者:行者123 更新时间:2023-12-01 16:41:58 24 4
gpt4 key购买 nike

为了扩展 R 函数的可用性,我们需要传递一个函数类型 (FUN) 的参数,请您演示如何在另一个函数中声明函数参数以及如何调用它。喜欢

MyOperation <- function(x, y, FUN){
int sum <- x+y
if (!missing(FUN)) sum<-FUN(sum)}
return sum
}

Res <- MyOperation(x=1, y=2, FUN=function(n){...})

最佳答案

您无需在 R 中声明变量。您也可以在正式参数列表中指定默认值。在这种情况下,您不需要使用 missing

这会运行 FUN(x + y) 或如果未指定 FUN 则返回 x+y

myOp2 <- function(x, y, FUN = identity) FUN(x + y)

myOp2(1, 2)
## [1] 3

myOp2(1, 3, sqrt)
## [1] 2

一个增强可能是允许将函数指定为函数或字符串:

myOp2a <- function(x, y, FUN = identity) {
FUN <- match.fun(FUN)
FUN(x + y)
}

myOp2a(1, 3, "sqrt")
## [1] 2

myOp2a(1, 3, sqrt)
## [1] 2

如果未指定 FUN,则对 xy 求和;否则,它将使用参数 xy 运行 FUN

myOp3 <- function(x, y, FUN = sum) FUN(x, y)

myOp3(1, 2)
## [1] 3

myOp3(1, 2, min)
## [1] 1

关于r - 如何创建一个以 FUN 作为参数的 R 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46940944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com