打印 R 函数时如何抑制环境线?

How do I suppress the environment line when printing an R function?

当我从一个包中打印一个函数时,如何抑制 environment/namespace 行?我试过将函数重新分配给全局环境。我试过进入 foobar 环境。我已经尝试过噱头和游戏,甚至使用 R 来完成这项工作。看起来应该有一个简单的方法来做到这一点。

> x2
function(x) {
    return(x * x)
}
<environment: namespace:foobar>
>

好吧,如果您想更改函数的打印方式,请创建您自己的 print.function。我认为这应该适合你

print.function <- function(x,...) {
    environment(x)<-globalenv(); 
    base::print.function(x,...)
}

例如

x2<-function(x) {
    return(x * x)
}
environment(x2)<-asNamespace("stats")

base::print.function(x2)
# function(x) {
#     return(x * x)
# }
# <environment: namespace:stats>

x2
# function(x) {
#     return(x * x)
# }