gpt4 book ai didi

r - 从命名空间访问(导出)函数

转载 作者:行者123 更新时间:2023-12-04 16:51:57 25 4
gpt4 key购买 nike

我知道之前有人问过类似的问题 here on SO ,但那里给出的解决方案似乎不适用于我的情况。
我试图通过引用从其他命名空间导出的函数并避免使用 require() 来遵循创建包的惯例。一个函数内。
我基本上是想防止一个函数运行时间太长。例如,

fun <- function(i){
require(R.utils)
setTimeLimit(elapsed=10, transient=TRUE) # prevent taking more than 10secs
return(i^i)
}
>fun(10)

工作正常,但如果我尝试:
require(R.utils)
fun <- function(i){
R.utils:::setTimeLimit(elapsed=10, transient=TRUE) # prevent taking more than 10secs
return(i^i)
}
>fun(10)

我得到:
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
object 'setTimeLimit' not found

:::::不会改变这种行为。
我愿意接受任何更简单的方法来实现相同的目标。
还有 require()真的那么糟糕吗?在函数内部调用?
非常感谢!

编辑:
如果导入有效,那就太好了,谢谢。仍在开发中,所以想确保一切正常。

编辑:
抱歉,它在基地里。不知道我是怎么错过的;我最初使用的是 R.utils::evalWithTimeout并且必须假设两者都在同一个包中。 *看起来很害羞*

最佳答案

我只是发布这个以防止问题显示为未回答,但会很高兴接受另一个......

isTRUE("setTimeLimit" %in% ls(getNamespace("base"), all.names=TRUE))

关于r - 从命名空间访问(导出)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233361/

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