如何解决在 R 函数中,如何访问调用环境?
foo <- function() {
# how to kNow what environment_of_caller is
}
caller <- function() {
# environment_of_caller
foo()
}
我正在编写的函数需要知道其调用者的环境。这可以在不将环境作为参数传入的情况下完成吗?
解决方法
假设您确实需要这样做,函数 parent.frame()
会提供。
foo <- function() {
parent.frame()$a
}
caller <- function() {
a <- 1
foo()
}
caller()
## [1] 1
但是,通常人们会像这样编写它(只有 foo
被更改),因为它提供了所需的功能,而且还可以灵活地更改所使用的环境。
foo <- function(envir = parent.frame()) {
envir$a
}
caller <- function() {
a <- 1
foo()
}
caller()
## [1] 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。