繁体   English   中英

返回父环境中的公式

[英]Return formula in parent environment

如果我有一个返回formula的 R function ,则它绑定到函数的范围/环境。 我可以从 function中做什么,以使返回的公式不具有此环境属性?

例如,

myfun = function() {
    model = y ~ 1
    return(model)
}

结果:

> myfun()
# y ~ 1
# <environment: 0x000001ffd94eca50>

一种解决方案是在返回之前修改属性:

myfun = function() {
    model = y ~ 1
    attr(model, ".Environment") = globalenv()
    return(model)
}

但这看起来很hacky,所以这真的是最好的方法吗?

我可能会使用父环境而不是全局环境

myfun <- function() {
    model <- y ~ 1
    environment(model) <- parent.frame()
    return(model)
}

这将从您调用它的位置创建环境,如果您始终喜欢全局环境,位globalenv()也可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM