[英]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.