R 设置变量等于函数返回的值。每次调用时再次重新评估变量

标签 r variables dynamic environment scoping

这个问题在这里已经有了答案:





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/

相关文章:

c - 内存应该有效

python - 动态规划 - 斐波那契

r - 使用 RSelenium 在 R 中抓取 Javascript

R - 带有 ggplot2 : change values of precipitaion to fit second axis 的气候仪

PHP 和 MySQL 变量

bash - 从 wp-config.php 读取变量

sql - 动态 SQL PostgreSQL

R:source() 和源文件的路径

r - 如何将 SOAP 请求 curl 转换为 RCurl

ruby - 设置 Ruby 变量(如果尚未定义)