R set variable等于函数返回的值.每次调用变量时再次重新评估变量

stu*_*azy 5 variables environment r dynamic scoping

我不是开发人员,我不能用简单的语言表达我需要的东西.它与环境,作用域,附件以及可能的指针和引用等内容相关联.

应该用代码清楚:

a<-c(1,2)
b<-length(a)
a<-c(1,2,3)
b
[1] 2
Run Code Online (Sandbox Code Playgroud)

我希望b返回3.

我在第二行改变了什么?是否可以在不定义新的自定义函数和使用外部包的情况下执行此操作?

尝试eval失败,分配,<< - 到目前为止

Jos*_*ien 6

我不建议您实际使用它,但makeActiveBinding()会做您要求的事情:

makeActiveBinding("b", function() length(a), .GlobalEnv)
a <- c(1,2)
b
# [1] 2
a <- c(1,2,4)
b
# [1] 3
Run Code Online (Sandbox Code Playgroud)