假设我想编写一个简单的重命名函数,该函数将加载.Rprofile
。功能很简单,可以与以下内容进行比较:
carsNewName <- mtcars; rm(mtcars)
.Rprofile
.Rprofile
中提供的功能格式为:
.env$rename <- function(oldName, newName) {
newName <- oldName
rm(oldName, envir = parent.env())
return(newName)
}
。env
通过attach(.env)
附加。
如何通过parent.env()
访问功能的父环境? I.e。如果在另一个函数中调用 rename
函数,我想在那里重命名对象,而不是在全局环境中。
答案 0 :(得分:2)
f
在父级环境中显示x
,然后在父级框架中显示x
:
f <- function() {
e <- environment() # current environment
p <- parent.env(e)
print(p$x)
pf <- parent.frame()
print(pf$x)
}
g <- function() {
x <- 1
f()
}
x <- 0
g()
,并提供:
[1] 0
[1] 1