gpt4 book ai didi

从评估函数返回 system.time

转载 作者:行者123 更新时间:2023-12-02 11:29:22 24 4
gpt4 key购买 nike

R 版本 2.12,Windows XP

我正在尝试编写一个函数(例如“g”),它接受一个参数,一个函数(例如“f”),并返回匹配的函数。此外,“g”主体中包含一条语句,该语句告诉结果对象在调用该对象时返回 system.time 的值。举个例子就可以清楚地说明。

我想要什么:

g <- function(f) {...}
z <- g(mean)
z(c(1, 4, 7))

带输出

user system elapsed
0.04 0.00 0.04

我有:

g <- function(f) {if (!exists("x")) {x <- match.fun(f)} else {system.time(x)}}
z <- g(mean)
z(c(1, 4, 7))

带输出

[1] 4

非常感谢任何帮助。

最佳答案

也许这会有所帮助:

g <- function(f){
function(x){
zz <- system.time(
xx <- match.fun(f)(x)
)
list(value=xx, system.time=zz)
}
}

使用中:

g(mean)(c(1, 4, 7))

$value
[1] 4

$system.time
user system elapsed
0 0 0
<小时/>

您可能需要考虑如何返回值。我使用了一个列表,但另一个选择是打印系统时间作为副作用并返回计算值。

关于从评估函数返回 system.time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998942/

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