我在R工作,我想做,例如,
printx <- function() {
x <- 1
printy()
return(x)
}
printy <- function() {
print(x)
}
Run Code Online (Sandbox Code Playgroud)
因为我不想继续传递大量的变量(同样,全球环境中也没有x).有没有办法做到这一点?所有功能都可以访问全局环境,但功能环境与全局环境之间的功能如何?
也许
printx <- function() {
x <- 1
printy()
return(x)
}
printy <- function() {
print(get('x',envir=parent.frame()))
}
> x<-0
> printy()
[1] 0
> printx()
[1] 1
[1] 1
Run Code Online (Sandbox Code Playgroud)
这将使用与被调用函数的环境相关联的x打印printy.
另一种可能性是创造一个新的环境
e1<-new.env(parent = baseenv())
> assign('x',12,envir=e1)
> x
[1] 0
> get('x',e1)
[1] 12
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |