这个问题在这里已经有了答案:
Dynamic variables in base R
(4 个回答)
6年前关闭。
我不是开发人员,我无法用简单的语言很好地表达我的需求。它与环境、范围、 shell 以及指针和引用等事物相关联。
代码应该很清楚:
a<-c(1,2)
b<-length(a)
a<-c(1,2,3)
b
[1] 2
我想要 b 返回 3。
我在第二行更改了什么?是否可以在不定义新的自定义函数和使用外部包的情况下做到这一点?
尝试 eval、assign、<<- 到目前为止失败
最佳答案
我不建议你实际使用它,但 makeActiveBinding()
会做你所要求的:
makeActiveBinding("b", function() length(a), .GlobalEnv)
a <- c(1,2)
b
# [1] 2
a <- c(1,2,4)
b
# [1] 3
关于R 设置变量等于函数返回的值。每次调用时再次重新评估变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227008/